【发布时间】:2010-10-22 04:19:51
【问题描述】:
使用 VBScript,如何列出所有具有方法的 WMI 类?
【问题讨论】:
使用 VBScript,如何列出所有具有方法的 WMI 类?
【问题讨论】:
运行SELECT schema query 以获取命名空间中所有类的列表,然后检查每个类的Methods_.Count:
strComputer = "."
strNamespace = "root\cimv2"
Set oWMI = GetObject("winmgmts:\\" & strComputer & "\" & strNamespace)
Set colClasses = oWMI.ExecQuery("SELECT * FROM meta_class")
For Each oClass in colClasses
If oClass.Methods_.Count > 0 Then
WScript.Echo oClass.Path_.Class
End If
Next
您可能希望仅将结果限制为 dynamic and static classes,就像 WMI Code Creator 所做的那样。为此,请为相应的类限定符添加额外检查。
...
For Each oClass in colClasses
For Each oQualifier In oClass.Qualifiers_
strQualName = LCase(oQualifier.Name)
If strQualName = "dynamic" OR strQualName = "static" Then
If oClass.Methods_.Count > 0 Then
WScript.Echo oClass.Path_.Class
End If
End If
Next
Next
我还建议您阅读WMI Scripting Primer: Part 2 文章。它通过示例详细解释了 WMI 概念和基础结构,并且可能已经为您未来的问题提供了答案。 :)
【讨论】: