Inicie o comando remoto do PowerShell e termine mesmo se estiver desconectado

Inicie o comando remoto do PowerShell e termine mesmo se estiver desconectado

Se eu iniciar uma sessão remota do PowerShell com:

Enter-PSSession -ComputerName somecomputer

Então quero executar um processo de longa duração:

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

Se minha sessão remota for desconectada por qualquer motivo - como interrupção ou reinicialização da rede da máquina local - há alguma maneira de garantir que o comando ainda seja concluído no servidor?

Pelo que estou vendo, parece desaparecer assim que minha sessão PS termina. Eu também tentei Start-Process, mas parece se comportar da mesma forma.

Estou tentando executar coisas em um servidor sem precisar usar RDP. Ainda sou iniciante no PowerShell, então tenho certeza de que há muitas coisas que estão faltando. Estou no Win10, PowerShell 7, conectando-me ao Windows Server 2016, mas presumo que seria o mesmo em qualquer lugar.

Responder1

Acho que o que você está procurando é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.

Responder2

Parece que não preciso de uma nova sessão, apenas da sintaxe correta:

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

O -AsJobparâmetro executa o comando como um serviço em segundo plano. O -ScriptBlockparâmetro me permite executar um exe.

informação relacionada