Запустите запрос схемы 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 подробно и с примерами, и, возможно, уже содержит ответы на ваши будущие вопросы.:)