1

長時間実行されるリモート プログラムを起動したいのですが、待ちたくありません。そこで、PS スクリプト ファイルに以下の 1 行のコマンドを入力し、「Powershell -file xxx.ps1」を実行します。

Invoke-command server1 {xxx.exe} -AsJob

ただし、スクリプトの実行後にリモート プログラムは実行されませんが、上記のコマンドを PS コンソールで対話的に実行すると、リモート プログラムは正常に実行されます。スクリプトが終了すると、プログラムが強制終了されたようです。

どうしてこれなの?

アップデート

スクリプトの最後で 1 秒間スリープすると、リモート アプリは正常に動作します。

4

1 に答える 1

1

これを回避する最善の方法は、おそらくWait-Jobを使用することです。起動したジョブが完了するまで待機します。そうしないと、おそらく接続が完全に確立される前に、スクリプトが閉じられます。

バックグラウンドで実行されているすべてのジョブが完了するまで待ちたい場合は、次を使用できます。

Invoke-command server1 {xxx.exe} -AsJob
Get-Job | Wait-Job
于 2014-08-09T07:32:48.730 に答える