2017-06-30 39 views
0

特定のユーザーのみがアクセス権を持つデータベースへの書き込みを含むスクリプトを実行しているため、企業ネットワーク上で別のユーザーとしてスクリプトを実行しています(これらのユーザー資格情報を渡しています)。Powershell:同じウィンドウで別のユーザーとしてスクリプトを実行できませんか?

-NoNewWindow-WindowStyle Hiddenなどの試行錯誤にもかかわらず、常に新しいウィンドウでポップアップするようです。これは、PowerShellビルドステップを使用してJenkins Builderからスクリプトを起動すると、Jenkinsは2番目のウィンドウが気に入らず、メインウィンドウにすべて必要と思われるためです。

(私は詳細の一部を切り取って)私たちは、Start-Processを使用していて、スクリプトの呼び出しは次のようになります。

Start-Process -NoNewWindow powershell.exe -Credential $credential -ArgumentList “Start-Process powershell.exe 'path\script.ps1 -param1 xxx -param2 yyy' -Verb runAs” 

任意のアイデアを、これは実際にポップアップウィンドウなしで実行するために取得する方法のよう? ありがとう!これらの

+0

にトリックを行う必要がありますか?あなたの '-ArgumentList'で' Start-Process powershell.exe'がなぜもう一度ですか?最初の 'powershell.exe'プロセスでスクリプトを起動するべきではありませんか? –

+0

実際にビルド設定でスクリプトを直接実行することはできますが、必要な資格情報を渡すためには、Start-Processのパラメータです...私は引数にstartプロセスが必要な理由は分かりません。それなしでは全く動かないようだ。私はちょうどインターンで、昨日マネージャーと一緒に仕事をしています。それは彼が思いついたものです。彼は同様のコマンドを使用しましたが、ここではうまくいかないようです。 –

+1

はあなたのためのオプションではないinvoke-commandです: 'Invoke-Command -FilePath -Credential' – Kiran

答えて

0

一つは、仕事のconfigで `パスの\ script.ps1`のコマンドを入力しないようにすることができる、直接ではなく、新しいプロセスを生成します

Invoke-Command -ComputerName 'Same computer Name' -Credential '(PAss Cred object here)' -ScriptBlock {'Your Scripts Here'} 
Invoke-Command -ComputerName 'Same computer Name' -Credential '(PAss Cred object here)' -FilePath 'FilePAthHere' 
+0

必要なコンピュータ名ですか?別のユーザーと同じようにリモートコンピュータで実行しようとしていないので、私はその部分を省略しました –

+0

本当にうまくいっています、どのように資格を渡しましたか? –

+0

Thats -credentialが-computernameが存在しないため、 –

関連する問題