尝试使用 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 脚本时“不允许请求的注册表访问”