Question

I have a 2 servers running Windows Server 2012 R2. One of them is hosting a virtual machine running Windows 7 32-bit, and I am trying to use the other server to view the currently running processes of the virtual machine.

I had to use Enable-PSRemoting -SkipNetworkProfileCheck for anything to work. I also had to add the computers to each others TrustedHosts lists.

Get-Process -ComputerName VM01

will return a "Couldn't connect to remote machine". However,

Invoke-Command -ComputerName VM01 -ScriptBlock {Get-Process}

works just fine. What is the difference between using Invoke-Command and using the Get-Process with a ComputerName argument? In case it is important, I can also use Enter-PSSession without any problems

Était-ce utile?

La solution

Get-Process probably uses the DCOM/RPC remoting protocol instead of Windows Remote Management (WinRM), which is what PowerShell Remoting (eg. Invoke-Command) uses. If you have a firewall blocking DCOM/RPC, then I could see how Get-Process with the -ComputerName parameter would fail. With PowerShell Remoting (via WinRM), all you need to do is open up TCP 5985 (HTTP) and TCP 5986 (HTTPS, optional).

Autres conseils

I ran across this error my self today, the solution in my case (I already had enabled port 5985) the problem occurred because of my firewall blocked port 445 (on the target).

As soon as this port was enabled I was able to use,

Get-Process -ComputerName dc01

and

Get-Service -ComputerName dc01

However I do recommend you read this page: https://www.grc.com/port_445.htm as it seems that some security issues may appear upon allowing this port toward the Internet.

My symptoms was exactly as OP descripes...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top