Inicie el comando remoto de PowerShell y finalice incluso si está desconectado

Inicie el comando remoto de PowerShell y finalice incluso si está desconectado

Si inicio una sesión remota de PowerShell con:

Enter-PSSession -ComputerName somecomputer

Entonces quiero ejecutar un proceso de larga duración:

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

Si mi sesión remota se desconecta por cualquier motivo, como una interrupción de la red de la máquina local o un reinicio, ¿hay alguna forma de garantizar que el comando aún se complete en el servidor?

Por lo que estoy viendo, parece desaparecer tan pronto como finaliza mi sesión de PS. También lo intenté Start-Process, pero parece comportarse igual.

Estoy intentando ejecutar cosas en un servidor sin tener que utilizar RDP. Todavía soy un principiante en PowerShell, así que estoy seguro de que me faltan muchas cosas. Estoy en Win10, PowerShell 7, conectándome a Windows Server 2016, pero supongo que sería igual en cualquier lugar.

Respuesta1

Creo que lo que estás buscando esNew-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.

Respuesta2

Parece que no necesito una nueva sesión en absoluto, sólo la sintaxis correcta:

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

El -AsJobparámetro ejecuta el comando como un servicio en segundo plano. El -ScriptBlockparámetro me permite ejecutar un exe.

información relacionada