Это происходит в системе Windows XP pro (да, я знаю, что это старая ОС). Я искал способ получить список всех устройств, для которых не установлены драйверы, или есть проблемы с используемыми драйверами.
Я пробовал
$foo = Get-WmiObject Win32_PNPEntity | Where-Object{$_.ConfigManagerErrorcode -ne 0}
Проблема в том, что не все исключения удается получить.
Например, ноутбук HP со сканером отпечатков пальцев
отображается в диспетчере устройств как "Другое устройство - USB-устройство".
Он не был обнаружен с помощью одного из перечисленных мною исключений.
Есть ли способ получить массив недостающих драйверов с помощью powershell?
#For formatting:
$result = @{Expression = {$_.Name}; Label = "Device Name"},
@{Expression = {$_.ConfigManagerErrorCode} ; Label = "Status Code" }
#Checks for devices whose ConfigManagerErrorCode value is greater than 0, i.e has a problem device.
Get-WmiObject -Class Win32_PnpEntity -ComputerName localhost -Namespace Root\CIMV2 | Where-Object {$_.ConfigManagerErrorCode -gt 0 } | Format-Table $result -AutoSize
Коды ошибок в диспетчере устройств Windows :- https://support.microsoft.com/en-us/kb/310123 Win32_PNP Entity Class : https://msdn.microsoft.com/en-us/library/aa394353(v=vs.85).aspx
Я сделал это, когда у меня было несколько устройств, которые не были приняты моим скриптом, попробуйте и посмотрите, обнаружит ли он ваши устройства.
$foo = Get-WmiObject Win32_PNPEntity | Where-Object{$_.Availability -eq 11 -or $_.Availability -eq 12}