PowerShell Get-Process:无法连接到远程计算机

现在已经挣扎了好几天了。

我收到以下错误:

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 

我已经确认远程registry服务正在服务器上运行(我也尝试重新启动它)。

另外,我已经创build了一个自定义的防火墙规则,允许在端口5985 && 5986上的RCP连接按照https://stackoverflow.com/questions/22357063/get-process-to-remote-computer-doesnt-work-but-invoke-命令呢

我还仔细检查了每个Powershell的用户名Get-Process无法连接到远程计算机

注意

invoke-command -ComputerName Win2012r2 -ScriptBlock {Get-Process}可以正常工作,但是我真的需要让get-process -computername进程直接工作,因为在别人使用的另一个脚本中失败

我终于放弃了,并写了一个新的脚本,使用以下,而不是直接调用Get-Process

 invoke-command -ComputerName Win2012r2 -ScriptBlock {param($procName) Get-Process -Name $processName} -ArgumentList $ProcName 

当我开始在Win7客户端testingLocalHost上自学PS2时,我遇到了类似的错误。 我解决了它通过启动远程registry服务。

我能想到的唯一的事情是,你正在运行这个帐户没有目标(Win2012r2)的pipe理权限,或者防火墙阻止它。 尝试完全禁用防火墙来testing后者。

你是否证实你的DNSparsing工作正常? 可能会尝试nslookup来validation您是否解决了正确的IP。

看看这个post。 这看起来像是你的问题的答案。 尝试closures两个系统上的防火墙,并使用get-process。 如果它然后工作,你会知道你需要打开在这篇文章中提到的端口。

https://stackoverflow.com/questions/22357063/get-process-to-remote-computer-doesnt-work-but-invoke-command-does

Get-Process -ComputerName使用RPC,而不是WinRM。 WinRM是什么使用5985和5986,而不是RPC。

RPC端口默认是dynamic的。

检查Get-Process的“Get-Help”。

-ComputerName此参数不依赖于Windows PowerShell远程处理。 即使您的计算机未configuration为运行远程命令,也可以使用Get-Process的ComputerName参数。

Invoke-Command使用WinRM。 所以当你改变你的代码来使用Invoke-Command时,你的脚本开始工作。