Powershell远程处理:连接不一致

时间:2013-09-18 21:46:13

标签: powershell-v3.0 powershell-remoting

一个Powershell命令如何在远程计算机上运行,​​而在同一个控制台中不运行另一个?

  1. PS C:> Get-Service -Name WinRM -ComputerName win8

    状态名称显示名称
    ------ ---- -----------
    运行WinRM Windows远程管理(WS-Manag ...

  2. PS C:> Get-Counter'\ Paging File(*)\%Usage'-ComputerName win8 获取计数器:无法连接到指定的计算机或计算机处于脱机状态。 在行:1 char:1

    • Get-Counter'\ Paging File(*)\%Usage'-ComputerName win8
    • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
    • CategoryInfo:InvalidResult:(:) [Get-Counter],Exception
    • FullyQualifiedErrorId:CounterApiError,Microsoft.PowerShell.Commands.GetCount erCommand

1 个答案:

答案 0 :(得分:1)

Get-Service和Get-Counter为-ComputerName使用不同的远程处理层。 Invoke-Command -ComputerName使用WinRM远程处理层,Get-Service(我相信)是一个远程注册表调用。 Get-Counter是一个DCOM呼叫,我相信WMI。

这是一个非常好的经验法则,如果您不知道其中包含-ComputerName的cmdlet正在使用PowerShell远程处理层,则可能不是。许多cmdlet在PowerShell的V1中都有-ComputerName,而许多其他远程处理层比WinRM更有效,所以很多-ComputerName参数都使用它们自己的层。