从VBScript访问WMI集合对象而不使用“For Each”枚举

时间:2013-09-23 13:05:06

标签: collections vbscript wmi win32-process

我有这段代码,但是我不知道要传递给Item方法的参数:

Dim oWMISrvc, oProcCol

Set oWMISrvc = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set oProcCol = oWMISrvc.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'wscript.exe'")
If oProcCol.Count Then WScript.Echo oProcCol.Item(?).CommandLine

我想查询ExecQuery返回的集合中的第一个Win32_Process项。我知道它可以通过“For Each”枚举来完成,但我正在寻找一种直接访问它的方法。

P.S。:我只是为了测试而查询“wscript.exe”,所以我实际上并没有尝试检索运行脚本的命令行,而是检索外部可执行文件。 谢谢。

1 个答案:

答案 0 :(得分:0)

找到我的答案here。所以这似乎有效,但不适用于XP或旧版本的Windows:

If oProcCol.Count Then WScript.Echo oProcCol.ItemIndex(0).CommandLine