1

我编写了一个 VBScript 来通过 WMI 将 Win2k3 SP2 服务器连接到多个 Win2k3 + SP2 和 WinXP + SP3 机器,以便查询系统 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'

尽管将对象ImpersonationLevelAuthenticationLevel名字对象设置为预期,WMI 似乎也正确安装在客户端和远程系统上。与远程系统的初始连接也适用于本地管理员用户。

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

4

1 回答 1

0

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

尽管管理员帐户在两个不同的系统上看起来是一样的,但这证明您需要确保同样的访问级别和安全性;)

于 2011-11-22T01:42:36.970 回答