Starten Sie einen Remote-PowerShell-Befehl und lassen Sie ihn beenden, auch wenn die Verbindung getrennt ist

Starten Sie einen Remote-PowerShell-Befehl und lassen Sie ihn beenden, auch wenn die Verbindung getrennt ist

Wenn ich eine Remote-PowerShell-Sitzung starte mit:

Enter-PSSession -ComputerName somecomputer

Dann möchte ich einen lang laufenden Prozess ausführen:

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

Wenn meine Remotesitzung aus irgendeinem Grund getrennt wird – beispielsweise aufgrund eines Netzwerkausfalls oder Neustarts des lokalen Computers – gibt es eine Möglichkeit sicherzustellen, dass der Befehl auf dem Server dennoch abgeschlossen wird?

Soweit ich es sehe, scheint es zu verschwinden, sobald meine PS-Sitzung beendet wird. Ich habe es auch versucht Start-Process, aber es scheint sich genauso zu verhalten.

Ich versuche, Dinge auf einem Server auszuführen, ohne mich per RDP anmelden zu müssen. Ich bin noch Anfänger in PowerShell, daher bin ich mir sicher, dass ich eine Menge Dinge übersehe. Ich verwende Win10, PowerShell 7 und verbinde mich mit Windows Server 2016, aber ich gehe davon aus, dass es überall dasselbe wäre.

Antwort1

Ich denke, was Sie suchen istNew-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.

Antwort2

Sieht so aus, als bräuchte ich überhaupt keine neue Sitzung, sondern nur die richtige Syntax:

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

Der -AsJobParameter führt den Befehl als Hintergrunddienst aus. Mit dem -ScriptBlockParameter kann ich eine EXE ausführen.

verwandte Informationen