リモートPCでPowerShellスクリプトを実行します
-
21-09-2019 - |
質問
リモートPC(RPC001)にPS 1.0をインストールしました。使った Windows sysinternalsツールpsexec.exe リモートで次のプロセスを実行するには:
PSExec \\RPC001 -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2
その後、リモートPCでPowershell.exeプロセスが実行されているのがわかりますが、実際には何もしていません。スクリプトに文字列を「書き込み出力/ホスト」の単純なコードを配置しようとしました。 RTSによってリモートで同じスクリプトを実行しますが、そこで機能します。
psexecを使用してスクリプトを実行するために他の何かを見逃しているのか、それともpsexec.exeの制限であるかはわかりません。リモート上のPSスクリプトを起動して、ボックスからローカルで何かをして(一部のファイルをローカルに圧縮し、古いファイルを削除)したいと思います。
StackoverFlowで同様の質問をしました。 PowerShellでリモートプロセスを実行します. ドン Psexecを使用することを提案しました。問題を解決するための代替方法のように聞こえます。しかし、私はそれをPowerShellで動作させることはできません。 PSをリモートPCで動作させる方法はありますか?
ちなみに、PS 2.0に必要なWindows XP SP3をインストールすることはできないため、PS 2.0を使用できません。
解決
Psexecツールでさらに調査した後、答えが得られたと思います。 PSEXECにインタラクティブモードでリモートでプロセスを起動するように指示するために-Iオプションを追加する必要があります。
PSExec \\RPC001 -i -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2
-iなしでは、PowerShell.exeは待機モードでリモートで実行されています。興味深い点は、単純なコウモリ(BATでPSなし)を実行すると、正常に動作することです。たぶんこれはPSケースにとって特別なものですか?ようこそコメントと説明。
他のヒント
受け入れられた答えは私にとってはうまくいきませんでしたが、以下は次のとおりです。
>PsExec.exe \\<SERVER FQDN> -u <DOMAIN\USER> -p <PASSWORD> /accepteula cmd
/c "powershell -noninteractive -command gci c:\"
の例 ここ
次のことを試してもらえますか?
psexec \\server cmd /c "echo . | powershell script.ps1"
受け入れられた答えは私にとってはうまくいきませんが、これはそうです。場所のスクリプトを確認します(各リモートサーバーで以下のc: temp_。
psexec @servers.txt -u <username> cmd /c "powershell -noninteractive -file C:\temp\script.ps1"