一个Powershell命令如何在远程计算机上运行,而在同一个控制台中不运行另一个?
PS C:> Get-Service -Name WinRM -ComputerName win8
状态名称显示名称
------ ---- -----------
运行WinRM Windows远程管理(WS-Manag ...
PS C:> Get-Counter'\ Paging File(*)\%Usage'-ComputerName win8 获取计数器:无法连接到指定的计算机或计算机处于脱机状态。 在行:1 char: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参数都使用它们自己的层。