Как перечислить все классы WMI, имеющие методы, использующие VBScript? - PullRequest
2 голосов
/ 22 октября 2010

Используя VBScript, как я могу перечислить все классы WMI, которые имеют методы?

1 Ответ

2 голосов
/ 22 октября 2010

Запустите запрос схемы SELECT , чтобы получить список всех классов в пространстве имен, а затем проверьте 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

Youможет потребоваться ограничить результаты только динамическими и статическими классами , как это делает 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: часть 2 .Он объясняет концепции и инфраструктуру WMI подробно и с примерами, и, возможно, уже содержит ответы на ваши будущие вопросы.:)

...