En utilisant VBScript, comment puis-je lister toutes les classes WMI qui ont des méthodes?Comment lister toutes les classes WMI ayant des méthodes utilisant VBScript?
2
A
Répondre
2
Exécuter un SELECT schema query pour obtenir une liste de toutes les classes dans un espace de noms, puis vérifiez chaque de classe 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
Vous pouvez limiter les résultats à dynamic and static classes que, comme WMI code créateur ne. Pour ce faire, ajoutez une vérification supplémentaire pour les qualificateurs de classe correspondants.
...
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
Je suggère également que vous lisiez l'article WMI Scripting Primer: Part 2. Il explique les concepts et l'infrastructure de WMI en détail et avec des exemples, et peut déjà contenir des réponses à vos questions futures. :)
Il est également recommandé de vérifier la présence du qualificatif «Implémenté» sur chaque méthode. Il existe des méthodes présentes mais non implémentées (comme «SetPowerState» par exemple). –