为什么Powershell查询远程机器抛出访问权限被拒绝?

时间:2011-08-12 16:42:12

标签: 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_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

但是,相同的查询可以在我的其他团队成员的计算机(或任何其他计算机)上运行,而不会出现任何问题。

我们尝试执行的脚本示例:

                $WmiOS = Get-WmiObject -Class Win32_OperatingSystem -ComputerName $targetComputer -credential $credential    
                $WmiOS.ConvertToDateTime($WmiOS.LastBootUpTime)  

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

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

-Authentication PacketPrivacy -Impersonation Impersonate

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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