Я извлекаю результаты из 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 тот уровень самоанализа, который позволил бы мне перечислить список свойств?Или есть что-то, что я могу сделать, используя схему, на которую я могу ссылаться и проверять в сценарии?