В настоящее время я пишу решение для сканирования драйверов для более старых систем, таких как XP и Vista, и я хотел бы получить список аппаратных идентификаторов устройства, для которого не установлен драйвер.
SELECT * FROM Win32_PNPEntity возвращает список HardwareID, только если для устройства установлен драйвер.
Вот мой код:
string txt = "SELECT * FROM win32_PNPEntity";
ManagementObjectSearcher deviceSearch = new ManagementObjectSearcher("root\\CIMV2", txt);
foreach (ManagementObject device in deviceSearch.Get())
{
if (device["Status"].ToString() != "OK")
{
try
{
foreach (var item in device.Properties)
{
Console.WriteLine(item.Name + ": " + item.Value);
}
Console.WriteLine("HardwareIDs:");
foreach (string id in (string[])device["HardwareID"]) { Console.WriteLine(id); }
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
Спасибо