如何从Win32_PnPEntity实例中提取特定属性?

2 投票
1 回答
1268 浏览
提问于 2025-05-11 01:56
def getPnpDeviceInfo():
    c = wmi.WMI()
    wql = "SELECT * FROM Win32_PnPEntity WHERE Manufacturer != 'Microsoft' AND NOT PNPDeviceID LIKE 'ROOT\\%'"
    print ("All physical PNP devices")
    for J in c.query(wql):
    print(J)

这个函数(查询)通常会返回所有的物理PNP设备,下面是一个输出示例:

instance of Win32_PnPEntity
{
Caption = "ACPI Lid";
ClassGuid = "{4d36e97d-e325-11ce-bfc1-08002be10318}";
ConfigManagerErrorCode = 0;
ConfigManagerUserConfig = FALSE;
CreationClassName = "Win32_PnPEntity";
Description = "ACPI Lid";
DeviceID = "ACPI\\PNP0C0D\\2&DABA3FF&3";
HardwareID = {"ACPI\\PNP0C0D", "*PNP0C0D"};
Manufacturer = "(Standard system devices)";
Name = "ACPI Lid";
PNPDeviceID = "ACPI\\PNP0C0D\\2&DABA3FF&3";
Status = "OK";
SystemCreationClassName = "Win32_ComputerSystem";
SystemName = "SUSDUTTA-LAP";
};

问题是,如果我只想提取实例的“PNPDeviceID”,在不改变WQL的情况下,怎么用python来做到这一点呢?

相关文章:

  • 暂无相关问题
暂无标签

1 个回答

2

没关系,我在WMI的Python文档里找到了答案。WQL会把结果以列表的形式返回,还有一个工厂方法叫做"__getattr__(self,'attribute_name'_)",它可以通过特定的属性名称来获取数据。

撰写回答