我已经编写了一个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也会在客户端和远程系统上正确安装。与远程系统的初始连接也适用于本地管理员用户。
还有什么可能是因为我没有看到权限被拒绝的错误?任何帮助将不胜感激。
答案 0 :(得分:0)
我相信我已经解决了自己的问题。 “权限被拒绝”错误与UAC有关,因此您需要使用与远程系统相同级别的访问和权限来执行脚本。我只是运行一个DOS命令提示符,将其作为客户端系统上的admin用户帐户运行,GetObject成功。
虽然管理员帐户在两个不同的系统上显示相同,但这证明您需要确保同样的访问级别和安全性也是如此;)