Как извлечь значение из объекта WMI и сохранить его в переменной? - PullRequest
0 голосов
/ 21 января 2020

Я хочу запросить WMI и сохранить значения в некоторых переменных. Результат возвращает объект WMI, мне нужно само значение.

Я думал о преобразовании объекта WMI в строку, а затем о ее поиске, но это не кажется правильным.

Если возможно, я бы хотел выбрать значение, назвав поле / заголовок. Подобно тому, как вы можете выбрать значение из объекта JSON.

Краткий пример:

import wmi
c = wmi.WMI()

for baseboard in c.Win32_Baseboard(["Product"]):
  print(baseboard)

baseboard_name = baseboard["Product"]
print(baseboard_name)

В приведенном выше примере я получаю эту ошибку :

Объект '_ wmi_object' не подлежит подписке.

1 Ответ

0 голосов
/ 25 января 2020

После некоторого интенсивного поиска в Google я нашел способ получить любую информацию WMI самостоятельно (без имени столбца).

В приведенном ниже примере показано, как получить модель материнской платы:

import win32com.client

wmi_service = win32com.client.Dispatch("WbemScripting.SWbemLocator")
wbem_service = wmi_service.ConnectServer(".", "root\cimv2")
baseboard_items = wbem_service.ExecQuery("SELECT * FROM Win32_Baseboard")

for obj_item in baseboard_items:
  baseboard_name = obj_item.Product

print(baseboard_name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...