【问题标题】:How to list all WMI classes having methods using VBScript?如何列出所有具有使用 VBScript 的方法的 WMI 类?
【发布时间】:2010-10-22 04:19:51
【问题描述】:

使用 VBScript,如何列出所有具有方法的 WMI 类?

【问题讨论】:

    标签: vbscript wmi


    【解决方案1】:

    运行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 概念和基础结构,并且可能已经为您未来的问题提供了答案。 :)

    【讨论】:

    • 检查每个方法上是否存在“已实现”限定符也是一个好主意 - 有些方法存在但未实现(例如“SetPowerState”)。
    猜你喜欢
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    相关资源
    最近更新 更多