Eu finalmente desisti e escrevi um novo script que usa o seguinte, em vez de chamar Get-Process
diretamente:
invoke-command -ComputerName Win2012r2 -ScriptBlock {param($procName) Get-Process -Name $processName} -ArgumentList $ProcName
Já estou lutando com isso há alguns dias.
Estou recebendo o seguinte erro:
PS C:\> get-process -ComputerName Win2012r2
get-process : Couldn't connect to remote machine.
At line:1 char:1
+ get-process -ComputerName 10.10.1.54
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-Process], InvalidOperationException
+ FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetProcessCommand
Confirmei que o serviço Registro Remoto está sendo executado no servidor (também tentei reiniciá-lo).
Além disso, criei uma regra de firewall personalizada para permitir conexões RCP nas portas 5985 & & 5986 por link
Eu também verifiquei os nomes de usuários por Get-Process do Powershell não pode se conectar ao computador remoto
Nota
invoke-command -ComputerName Win2012r2 -ScriptBlock {Get-Process}
funciona bem, mas eu realmente preciso que o processo get-process -computername
funcione diretamente, já que está falhando em outro script usado por outras pessoas
Eu tive um erro semelhante quando comecei a me ensinar PS2 no teste de cliente local WinHost LocalHost. Eu resolvi isso iniciando o serviço Registro Remoto.
-ComputerName
em Get-Process
usa RPC, não WinRM. O WinRM é o que usa 5985 e 5986, não RPC.
As portas RPC são dinâmicas por padrão.
Verifique a "Get-Help" de Get-Process
.
-ComputerName
Esse parâmetro não depende da comunicação remota do Windows PowerShell. Você pode usar o parâmetro ComputerName de Get-Process
, mesmo que o seu computador não esteja configurado para executar comandos remotos.
Invoke-Command
usa o WinRM.
Então, quando você alterou seu código para usar o Invoke-Command, seu script começou a funcionar.
A única coisa em que consigo pensar é que a conta em que você está executando não tem direitos de administrador no destino (Win2012r2) ou que o firewall está bloqueando isso. Tente desativar o firewall completamente para testar o último.
Você verificou se a sua resolução de DNS está funcionando? Pode tentar o nslookup para verificar se você está resolvendo o IP correto.
Confira esta postagem. Isso parece uma resposta para o seu problema. Tente desligar o firewall nos dois sistemas e use o processo get. Se funcionar, você saberá que precisa abrir as portas mencionadas neste post.
Tags remote-access powershell