Я получаю результаты из WMI, используя WQL через VBScript.
В примерах для перебора результатов используется цикл For Each
, но в каждом примере предполагается, что имена свойств известны. Дело в точке:
Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer Where Default = True")
For Each objPrinter in colInstalledPrinters
Wscript.Echo objPrinter.Name
Next
Некоторые классы WMI имеют очень длинный список связанных с ними свойств. В качестве дополнительной сложности нельзя ожидать присутствия некоторых свойств (согласно различным веб-страницам, которые я читал о WMI). Вместо того, чтобы исследовать каждый класс WMI и надеяться, что перечисленные свойства присутствуют, я хотел бы получить список свойств (или столбцов, если я думаю в SQL/WQL), присутствующих, скажем, для objPrinter или любого другого возвращаемого элемента .
Python — мой обычный язык, но в данном случае я не могу установить его на целевые машины; Я могу выполнять удаленные запросы WMI через Python, но я пытаюсь запустить локальное событие, поэтому возвращаюсь к VBScript. Хотя я понимаю, что Powershell может это сделать, я бы предпочел не изучать его прямо сейчас.
Итак, поддерживает ли VBScript тот уровень самоанализа, который позволил бы мне перечислить список свойств? Или есть что-то, что я могу сделать со схемой, на которую я могу ссылаться и исследовать в сценарии?