【问题标题】:How can I extract a value from a WMI object and store it in a variable?如何从 WMI 对象中提取值并将其存储在变量中?
【发布时间】:2020-01-21 14:36:06
【问题描述】:

我想查询 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' 对象不可下标。

【问题讨论】:

  • 如果您检查for baseboard in c.Win32_Baseboard(): print( baseboard ),那么您可以看到简单的baseboard_name = baseboard.Product 应该可以工作......
  • 谢谢@JosefZ,这是更优雅的方法。

标签: python wmi


【解决方案1】:

经过一番广泛的谷歌搜索后,我找到了一种自己获取任何 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 2021-07-21
    • 2012-07-17
    • 1970-01-01
    • 2011-06-22
    相关资源
    最近更新 更多