Você não pode usar Enter-PSSession
em um script, ele foi destinado apenas a logons interativos. Use Invoke-Command
em vez disso.
Eu tenho um script do PowerShell que cria uma sessão do Windows PowerShell (PSSession) em um servidor remoto por meio de Enter-PSSession
, os dois servidores não estão conectados a um DOMAIN. Esse script é chamado de um programa que está sendo executado como um serviço na conta de sistemas locais. Por algum motivo, a execução do script do PowerShell como uma conta de sistemas locais faz com que o Enter-PSSession
retorne um erro.
Por exemplo, quando executado a partir de uma conta de administrador local, o seguinte comando solicita minha senha e se conecta com êxito:
Enter-PSSession -ComputerName #### -Credential ####
No entanto, se eu executar o PowerShell usando uma conta de sistemas locais ou serviço de rede via psexec:
PsExec -i -s powershell.exe
PsExec -i -u "NT AUTHORITY\NetworkService" powershell.exe
Em seguida, tente o comando novamente, ele solicita minha senha e simplesmente retorna uma mensagem de erro:
Enter-PSSession : Connecting to remote server #### failed
with the following error message : WinRM cannot process the request. The
following error with errorcode 0x8009030d occurred while using Negotiate
authentication: A specified logon session does not exist. It may already have
been terminated.
Alguma ideia de como posso obter o comando Enter-PSSession
para funcionar em uma conta de sistemas locais?
Você não pode usar Enter-PSSession
em um script, ele foi destinado apenas a logons interativos. Use Invoke-Command
em vez disso.