为什么远程计算机上的Powershell查询抛出拒绝访问错误?

为什么远程计算机上的Powershell查询抛出拒绝访问错误?,powershell,permissions,wmi,Powershell,Permissions,Wmi,当我在连接到远程机器的机器上执行简单的PowerShell查询时,我从PowerShell ISE中收到这样的错误: Get-WmiObject : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) At line:8 char:43 + $WmiOS = Get-WmiObject <<<< -Class Win32_Operating

当我在连接到远程机器的机器上执行简单的PowerShell查询时,我从PowerShell ISE中收到这样的错误:

Get-WmiObject : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
At line:8 char:43
+                     $WmiOS = Get-WmiObject <<<<  -Class Win32_OperatingSystem -ComputerName    $targetComputer -credential $credential    
+ CategoryInfo          : NotSpecified: (:) [Get-WmiObject], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

You cannot call a method on a null-valued expression.
At line:9 char:45
+                     $WmiOS.ConvertToDateTime <<<< ($WmiOS.LastBootUpTime)            
+ CategoryInfo          : InvalidOperation: (ConvertToDateTime:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

有什么想法吗?

检查远程计算机上的防火墙和/或远程计算机管理员本地组中的凭据

尝试将以下标志添加到Get WmiObject命令中:

-Authentication PacketPrivacy -Impersonation Impersonate

确保正在运行的脚本不在服务器上。人们通常在服务器上托管powershell脚本,以便将它们放在不同的位置。如果您的脚本是本地的,那么您应该能够关闭机器。

如果您在Powershell ISE之外运行它,它会工作吗?你在其他机器上使用相同的帐户吗?嗨,拉尔斯:从我的机器上看,无论是ISE还是壳牌,它都不工作。我使用的帐户不是问题,因为我可以在没有问题的情况下RDP到机器中。我在我同事的盒子上测试了相同的脚本,它通过ISE和shell对他们都有效。那么他们的帐户在他们的机器上有效吗?你在他们机器上的帐户或他们在你机器上的帐户如何?这将有助于确定是您的帐户还是您的机器。我的帐户也在那里工作。在我的机器上尝试他们的帐户时,脚本完全失败了。因此,可以公平地假设它是在你的机器上。与其他机器有什么不同?因为它使用DCOM,所以可能与此相关。操作系统相同吗?不,它不是防火墙,因为它成功连接并出现了明确的“拒绝访问”错误。如果防火墙阻止WinRM,它就不会成功连接。@ewall:yes将是rpc不可用错误。真奇怪。如果我很好地理解了来自另一台计算机查询同一目标计算机的wmi的同一脚本,它就可以工作了!
-Authentication PacketPrivacy -Impersonation Impersonate