【问题标题】:WMI query on a Remote Machine in PowershellPowershell 中远程计算机上的 WMI 查询
【发布时间】:2012-04-14 23:54:18
【问题描述】:

我想在远程计算机上运行查询(例如 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 后,仍然出现相同的异常。可能是什么问题?

【问题讨论】:

    标签: powershell wmi wmi-query


    【解决方案1】:

    您是否阅读了 MSDN 上的 WMI Troubleshooting 部分?以下是关于您的错误的说法:

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

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

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

    【讨论】:

      【解决方案2】:

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

      WMI 在防火墙、随机端口方面存在大量问题。

      【讨论】:

        【解决方案3】:

        我第二次启用psremoting,那么你可以使用wsman协议代替dcom协议,用get-ciminstance代替,或者invoke-command。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-20
          • 1970-01-01
          • 2023-04-07
          • 1970-01-01
          相关资源
          最近更新 更多