【问题标题】:Access a WMI Collection Object From VBScript Without "For Each" Enumeration [duplicate]在没有“For Each”枚举的情况下从 VBScript 访问 WMI 集合对象 [重复]
【发布时间】:2013-09-23 13:05:05
【问题描述】:

我有这段代码,但我不知道要传递给 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”只是为了测试,所以我实际上并没有尝试检索我正在运行的脚本的命令行,而是检索外部可执行文件。 谢谢。

【问题讨论】:

  • 谢谢 Helen,我在您指出的线程中找到了满意的答案。在我的搜索中一定错过了它......

标签: collections vbscript wmi win32-process


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 2016-07-05
    • 2011-04-22
    • 2020-09-12
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多