我想在远程计算机上运行查询(例如CIM_Memory),在这种情况下,它是一个虚拟机。我在Powershell中使用此代码:
Get-WmiObject CIM_Memory -ComputerName IPADDRESS -Credential USERNAME
当然使用实际的IP和用户名。 两个操作系统(均为Win7)都启用了RemoteAdmin。
我遇到了这个例外:
Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)
由于它是带有UAC功能的Win7,因此用户可以获得访问令牌。所以有这个注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ LocalAccountTokenFilterPolicy
将此设置为1后,仍然会得到相同的异常。可能是什么问题?
答案 0 :(得分:0)
您是否阅读了MSDN上的WMI Troubleshooting部分?以下是关于您的错误的说法:
0x80070005 - E_ACCESS_DENIED - DCOM安全拒绝访问。
用户 没有通过DCOM远程访问计算机。通常情况下, 使用a连接到远程计算机时会发生DCOM错误 不同的操作系统版本。
为用户提供远程启动和 dcomcnfg中的远程激活权限。右键单击我的电脑 - > 属性在COM安全性下,单击两个部分的“编辑限制”。 为您想要远程访问,远程启动和远程的用户提供服务 激活。然后转到DCOM配置,找到“Windows管理 仪表“,并为用户提供远程启动和远程 激活。有关更多信息,请参阅在不同之间连接 操作系统
答案 1 :(得分:0)
强烈建议您启用ps远程处理(如果可以)。这样您就可以告诉目标计算机运行本地wmi调用并向您报告。
WMI在防火墙,随机端口方面存在大量问题。
答案 2 :(得分:0)
我第二次启用psremoting,然后可以使用wsman协议而不是dcom协议,而可以使用get-ciminstance或invoke-command。