尝试使用 SWbemLocator 从远程计算机检索 WMI 时访问被拒绝 (80070005)

Posted

技术标签:

【中文标题】尝试使用 SWbemLocator 从远程计算机检索 WMI 时访问被拒绝 (80070005)【英文标题】:Access is denied (80070005) when trying to retrieve WMI using SWbemLocator from remote machine 【发布时间】:2016-03-02 19:14:46 【问题描述】:

我尝试连接的远程机器如下:

Windows Embedded 标准 7 (SP1)。 在工作组中配置。 我使用的凭据来自管理员帐户。 我已将所有权限授予 CIMV2 命名空间中的“Everyone”组,包括所有子文件夹和条目 (wmimgmt.msc)。 我已将组件服务 ( dcomcnfg.exe)。 Windows 防火墙已禁用。

这是我正在使用的代码:

Dim remotets, objComputer, colComputereremote, strComputer
Dim objSWbemLocator, objWMIServiceremote

strComputer = "XTEMB4" 
WScript.Echo strComputer

'Get remote machine WMI service object  
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIServiceremote = objSWbemLocator.ConnectServer(strComputer, "root\CIMV2", "dts", _
"dts", "MS_409", "ntlmdomain:" & "")
Set colComputereremote = objWMIServiceremote.ExecQuery _
("Select * from Win32_OperatingSystem")

For Each objComputer in colComputereremote
    remotets = objComputer.LocalDateTime
    WScript.Echo remotets
Next

WScript.Quit

我在 Windows XP Embedded 机器上尝试了相同的代码(与 Win7 机器相同的配置),它运行良好。

【问题讨论】:

【参考方案1】:

在挖掘了一些相关问题后,我发现了一个对我有用的建议:我必须将用于远程访问 WMI 的用户帐户(我的代码中的“dts”和“dts”)添加到组“分布式 COM 用户”和“性能监视器用户”。这需要在目标远程 Windows 7 机器中进行更改。

信息可以在this link找到。

此外,有关如何在 Windows 7 标准中将用户添加到特定组的信息可以在 here 找到。

【讨论】:

以上是关于尝试使用 SWbemLocator 从远程计算机检索 WMI 时访问被拒绝 (80070005)的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用模拟在远程计算机上运行 PowerShell 脚本时“不允许请求的注册表访问”

如何从不同计算机的配置单元远程/连接 hbase 表

使用 powershell 从远程服务器获取服务状态

OpenCV2马拉松第17圈——边缘检測(Canny边缘检測)

从远程主机到本地主机的 scp [关闭]

JBoss AS 7 不接受远程连接