2017-08-07 12 views
0

別のPowerShellスクリプトから別のユーザーと非表示のウィンドウとしてPowerShellスクリプトを実行する必要があります。PowerShellスクリプトを別のPowerShellスクリプトと異なるユーザーと非表示のウィンドウとして実行

私はこれまで何を持っています:

$credPSCredentialオブジェクトです
Start-Process powershell '& C:\test.ps1' -WindowStyle Hidden -Credential $cred 

test.ps1スクリプトは、テスト目的のために、1行にRemove-Itemと入力します。私はまだファイルが削除されていないのを見ることができるので、スクリプトが実行されていないことがわかります。

EDIT

私の本来の意図は、regeditとスクリプトを実行することですが、私は、私はこのエラーを持っている(下記)Start-Job答えを実装したとき:

Start-Job : The value of the FilePath parameter must be a Windows PowerShell script file. Enter th 
e path to a file with a .ps1 file name extension and try the command again. 
+0

を使用し、ジョブの結果/出力を取得するには

A Windows PowerShell background job runs a command without interacting with the current session.

PS> $myJob = Start-Job -FilePath C:\test.ps1 -Credential $cred 

を言うように'Administrators 'のメンバであるユーザはこの手法を使用して昇格しません。あなたはそれのために 'Runas'動詞を使わなければなりません。 (あなたの意図かどうかは分かりません) –

答えて

1

これにはjobsを使用できます。 Powershell documentationは質問が非常に一般的ですので、私がいることを `PSCredential`オブジェクトを指摘するだろうReceive-Job

PS> $myJob | Receive-Job -Keep 
+0

はあなたのソリューションを試してみました。これはpowershellスクリプトでは完全に動作しますが、regeditスクリプトではうまく動作しません。それは同じ、恐ろしいpowershellであると思った... – pandemic

+0

ファイル 'c:\ test.ps1'は' regedit.exe/sc:\ file.reg'を含んでいなければなりません、あるいは 'Start-Job 'のように:' Start-Job -ScriptBlock {regedit /sc:\file.reg} -Credential $ cred' –

0

あなたはを通してPowerShellスクリプトを実行することができますタスクスケジューラ。あなたの目標であるかどうかは分かりませんが、資格情報を使ってユーザーのセッションでPowerShellスクリプトを実行できるようになります。

私はあなたのニーズに合わせて、どのようにあなたにGoogleをさせていただきます。

関連する問題