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

时间:2016-03-02 19:14:46

标签: vbscript wmi windows-embedded-standard

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

  • Windows Embedded标准版7(SP1)。
  • 在工作组中配置。
  • 我使用的凭据来自管理员帐户。
  • 我已将所有权限授予该群组"所有人"在CIMV2名称空间中,包括所有子文件夹和条目(wmimgmt.msc)。
  • 我已将所有权限授予该群组"所有人"对于组件服务的DCOM列表中的WMI条目的3个安全选项("启动和激活权限","访问权限"以及"配置权限") (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 个答案:

答案 0 :(得分:1)

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

可以在this link

中找到相关信息

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