WMI GetObject Permission Denied错误

时间:2011-11-21 02:31:03

标签: vbscript wmic

我已经编写了一个VBScript来将Win2k3 SP2服务器连接到多个Win2k3 + SP2& WinXP + SP3机器通过WMI查询系统Win32_OperatingSystem和Win32_ComputerSystem类。

Set loWMISvc = GetObject("winmgmts:{impersonationLevel=impersonate,authenticationLevel=Pkt}\\" & lsStore & "\root\cimv2")

Note: 'lsStore' is the IP address of the computer system I successfully connection too prior. 

然后我尝试为远程系统创建一个新对象,它继续返回一个权限被拒绝错误(脚本输出):

21/11/2011 1:17:50 PM     SUCCESS: Established connection to store
D:\Program Files\SUREfire Systems\Support\MG\QueryStores\QueryStores.vbs(244, 5) Microsoft VBScriptruntime error: Permission denied: 'GetObject'

尽管设置了对象 ImpersonationLevel AuthenticationLevel 标记,但WMI也会在客户端和远程系统上正确安装。与远程系统的初始连接也适用于本地管理员用户。

还有什么可能是因为我没有看到权限被拒绝的错误?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我相信我已经解决了自己的问题。 “权限被拒绝”错误与UAC有关,因此您需要使用与远程系统相同级别的访问和权限来执行脚本。我只是运行一个DOS命令提示符,将其作为客户端系统上的admin用户帐户运行,GetObject成功。

虽然管理员帐户在两个不同的系统上显示相同,但​​这证明您需要确保同样的访问级别和安全性也是如此;)