2011-11-21 60 views
1

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

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' 

尽管设置对象ImpersonationLevelAuthenticationLevel受限制的标记,WMI也显示在客户端和远程系统上正确安装。与远程系统的初始连接也适用于本地管理员用户。

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

回答

0

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

尽管管理员帐户在两个不同的系统上显示相同,但​​这证明您需要确保相同的访问级别和安全性也得到遵守;)