2016-03-02 219 views
0

远程机器,我试图连接到如下所示检索使用SWbemLocator WMI时:访问被拒绝(80070005),试图从远程计算机

  • 的Windows Embedded Standard 7的(SP1)。
  • 在工作组中配置。
  • 我使用的凭据来自管理员帐户。
  • 我赋予了CIMV2命名空间中“Everyone”组的所有权限,包括所有子文件夹和条目(wmimgmt.msc)。
  • 对于组件服务中DCOM列表中WMI条目的3个安全选项(“启动和激活权限”,“访问权限”和“配置权限”),我已授予组“Everyone”的所有权限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的机器相同的代码(相同的配置为Win7的机器),它工作正常。

回答

0

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

该信息可在this link找到。

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