0

我想在远程计算机上运行查询(例如 CIM_Memory),在这种情况下它是虚拟机。我在 Powershell 中使用此代码:

Get-WmiObject CIM_Memory -ComputerName IPADDRESS -Credential USERNAME

当然有一个实际的 IP 和用户名。RemoteAdmin 在两个操作系统(都是 Win7)上启用。

我得到了这个例外:

Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)

由于它是具有 UAC 功能的 Win7,因此用户会获得一个访问令牌。所以有这个注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ LocalAccountTokenFilterPolicy

将其设置为 1 后,仍然得到相同的异常。可能是什么问题呢?

4

3 回答 3

0

您是否阅读了MSDN 上的WMI 故障排除部分?这是关于您的错误的说法:

0x80070005 - E_ACCESS_DENIED - DCOM 安全拒绝访问。

用户无法通过 DCOM 远程访问计算机。通常,当连接到具有不同操作系统版本的远程计算机时,会发生 DCOM 错误。

在 dcomcnfg 中授予用户远程启动和远程激活权限。右键单击我的电脑-> 属性 在 COM 安全下,单击两个部分的“编辑限制”。给您想要远程访问、远程启动和远程激活的用户。然后去DCOM Config,找到“Windows Management Instrumentation”,给你想要远程启动和远程激活的用户。有关更多信息,请参阅在不同操作系统之间连接

于 2012-03-31T16:38:36.787 回答
0

如果可以,强烈建议您启用 ps 远程处理。这样您就可以告诉目标计算机运行本地 wmi 调用并向您报告。

当涉及到防火墙、随机端口时,WMI 有很多问题。

于 2012-04-01T08:48:21.553 回答
0

我第二次启用 psremoting,然后您可以使用 wsman 协议而不是 dcom 协议,并使用 get-ciminstance 代替,或者调用命令。

于 2020-08-30T17:14:40.427 回答