リモート PowerShell コマンドを開始し、切断されても完了させる

リモート PowerShell コマンドを開始し、切断されても完了させる

次のようにリモート PowerShell セッションを開始すると、

Enter-PSSession -ComputerName somecomputer

次に、長時間実行されるプロセスを実行します。

[somecomputer]: PS C:\>C:\SomeApp\DoSomething.exe

ローカル マシンのネットワーク停止や再起動など、何らかの理由でリモート セッションが切断された場合、コマンドがサーバー上で完了することを保証する方法はありますか?

私が見たところ、PS セッションが終了するとすぐに消えるようです。 も試してみましたStart-Processが、同じように動作するようです。

RDP なしでサーバー上で何かを実行しようとしています。まだ PowerShell の初心者なので、見落としていることがたくさんあると思います。Win10、PowerShell 7 を使用して Windows Server 2016 に接続していますが、どこでも同じだと思います。

答え1

あなたが探しているのはNew-PSsesion

Enter-PSSession: Starts a temporary interactive session with a remote computer. You can have only one interactive session at a time using Enter-PSSession. Exiting the session destroys it.
New-PSSession: Creates a PERSISTENT connection to a local or remote computer. Exiting the session does not destroy it, it is still available to connect to again unless you do something like Disconnect-PSSession or it times out.
Furthermore, with New-PSSession you can assign the session a Name or to a variable for easier re-use, etc.

答え2

新しいセッションはまったく必要ないようで、正しい構文だけが必要です。

Invoke-Command `
-ComputerName somecomputer `
-AsJob `
-ScriptBlock {& 'C:\SomeApp\DoSomething.exe'}

パラメータ-AsJobはコマンドをバックグラウンド サービスとして実行します。-ScriptBlockパラメータを使用すると、exe を実行できます。

関連情報