如何从 WMI 对象中提取值并将其存储在变量中?
How can I extract a value from a WMI object and store it in a variable?
我想查询 WMI 并将值存储在某些变量中。结果 returns 一个 WMI 对象,我需要它自己的值。
我考虑过将 WMI 对象转换为字符串,然后搜索它,但这似乎不对。
如果可能的话,我想通过命名 field/caption 来 select 一个值。类似于您可以 select 来自 JSON 对象的值的方式。
一个简短的例子:
import wmi
c = wmi.WMI()
for baseboard in c.Win32_Baseboard(["Product"]):
print(baseboard)
baseboard_name = baseboard["Product"]
print(baseboard_name)
在上面的例子中,我得到这个错误:
'_wmi_object' object is not subscriptable.
经过大量谷歌搜索后,我找到了一种自行获取任何 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)
我想查询 WMI 并将值存储在某些变量中。结果 returns 一个 WMI 对象,我需要它自己的值。
我考虑过将 WMI 对象转换为字符串,然后搜索它,但这似乎不对。
如果可能的话,我想通过命名 field/caption 来 select 一个值。类似于您可以 select 来自 JSON 对象的值的方式。
一个简短的例子:
import wmi
c = wmi.WMI()
for baseboard in c.Win32_Baseboard(["Product"]):
print(baseboard)
baseboard_name = baseboard["Product"]
print(baseboard_name)
在上面的例子中,我得到这个错误:
'_wmi_object' object is not subscriptable.
经过大量谷歌搜索后,我找到了一种自行获取任何 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)