当我在连接到远程计算机的计算机上执行简单的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)
有什么想法吗?
答案 0 :(得分:1)
尝试将以下标志添加到Get-WmiObject命令:
-Authentication PacketPrivacy -Impersonation Impersonate
答案 1 :(得分:0)
检查远程计算机上的防火墙和/或凭据是否位于远程计算机的管理员本地组中
答案 2 :(得分:0)
确保您运行的脚本不在服务器本身上。人们通常会在服务器上托管PowerShell脚本,以便将它们放在不同的位置。如果您的脚本是本地的,那么您应该能够关闭机器。