【发布时间】:2011-10-05 21:50:39
【问题描述】:
我正在通过 VBScript 使用 WQL 从 WMI 中提取结果。
在示例中,For Each 循环用于迭代结果,但在每个示例中,都假定属性名称是已知的。举个例子:
Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer Where Default = True")
For Each objPrinter in colInstalledPrinters
Wscript.Echo objPrinter.Name
Next
一些 WMI 类有很长的属性列表。作为一个额外的复杂因素,不能期望某些属性存在(根据我读过的有关 WMI 的各种网页)。与其研究每个 WMI 类并希望列出的属性都存在,我想获得一个属性列表(或列,如果我在 SQL/WQL 中考虑),例如 objPrinter 或任何其他返回的项目.
Python 是我常用的语言,但在这种情况下我无法将它安装在目标机器上;我可以通过 Python 执行 WMI 的远程查询,但我试图触发本地事件,因此回退到 VBScript。虽然我认为 Powershell 可能能够做到这一点,但我宁愿不立即学习它。
那么,VBScript 是否支持那种允许我枚举属性列表的自省级别?或者我可以做些什么涉及我可以在脚本中引用和检查的模式?
【问题讨论】: