这是相当奇怪的行为。我认为是 powershell 中的一个错误。如果你有一台可以 ping 的远程机器,但 WinRM 和 RPC 被阻止,你可以这样做
PS C:\Users\x_vitzur01> gsv -cn srv-trioprd-01
gsv : Cannot open Service Control Manager on computer 'srv-trioprd-01'. This operation might require other privileges.
At line:1 char:1
+ gsv -cn srv-trioprd-01
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-Service], InvalidOperationException
+ FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetServiceCommand
没问题,你可以看到它不起作用。但是如果你指定服务名称,则会得到不同的错误!
PS C:\Users\x_vitzur01> gsv -cn srv-trioprd-01 -name netlogon
gsv : Cannot find any service with service name 'netlogon'.
At line:1 char:1
+ gsv -cn srv-trioprd-01 -name netlogon
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (netlogon:String) [Get-Service], ServiceCommandException
+ FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
此消息与我在可访问的机器上检查服务但该服务不存在时的情况完全相同。这非常具有误导性,因为看起来 powershell 实际上查看了该机器上的服务,但实际上并没有。在这种情况下,我如何确定服务不存在或 gsv 无法连接?也许检查一些特殊的错误变量?