Есть ли способ командной строки для обнаружения неустановленных драйверов в DeviceManger?

Я пытаюсь найти способ командной строки для обнаружения неустановленных драйверов в device managerМне нужен способ определить, есть ли элементы под "другими устройствами", как показано ниже на снимке экрана

otherdeices

2 ответа

Пара нестандартных (в основном) вариантов здесь;

Командная строка (администратор)

C: \> wmic путь win32_pnpentity, где ConfigManagerErrorcode!=0 получить * / format: list

Powershell

PS C:\> Get-WmiObject Win32_PNPEntity | где {$_.status -ne "OK"} | Флорида 

Используя свойства из приведенных выше результатов, вы можете настроить вывод;

C: \> wmic путь win32_pnpentity, где ConfigManagerErrorcode!=0 получить pnpclass, имя, статус / формат: список
PS C:\> Get-WmiObject Win32_PNPEntity | где {$_.status -ne "OK"} | ft pnpclass, имя, статус -AutoSize

Примечание Нет трубы на wmic пример.

Вы можете получить больше информации о форматах вывода, используя;

C: \> wmic путь win32_pnpentity, где ConfigManagerErrorcode!=0 получить * /format /?

а также

PS C: \> формат get-help

Обновить:

Что касается перечисления конкретно "неустановленных" устройств (ваше сообщение адресовано как "другим", так и "неустановленным" устройствам, которые технически отличаются), прочитайте описание класса Microsoft для win32_pnpentity,

https://msdn.microsoft.com/en-us/library/aa394353(v=vs.85).aspx

Свойства Класс Win32_PnPEntity обладает этими свойствами.

......

Другое (1)

Неизвестный (2)

Бег / Полная мощность (3)

...

Не установлено (11)

...

Вот правильный способ найти проблемные устройства, которые отображаются в диспетчере устройств Windows со знаком вопроса в разделе «Другие устройства».

Первое, что следует отметить, это то, что эти устройства на самом деле не являются проблемными устройствами, просто им не присвоен номер classGuid. Сложность заключается в том, что PowerShell, похоже, не любит пустые ("") строки в тесте, поэтому вам нужно использовать Null-тест:[string]::IsNullOrEmpty($_.ClassGuid),так.

      Get-WmiObject Win32_PNPEntity | Where-Object{[string]::IsNullOrEmpty($_.ClassGuid) } |Select-Object Name,Present,Status,DeviceID |Sort-Object Name

С выходом:

      Name              Present Status DeviceID
----              ------- ------ --------
                     True OK     HTREE\ROOT\0
Airoha_APP           True OK     BTHENUM\{8901DFA8-5C7E-4D8F-9F0C-C2B70683F5F0}_VID&0002054C_PID&0D58\7&2CE6D2A4&0&F84E17E86153_C00000000
Amazon Alexa         True OK     BTHENUM\{931C7E8A-540F-4686-B798-E8DF0A2AD9F7}_VID&0002054C_PID&0D58\7&2CE6D2A4&0&F84E17E86153_C00000000

ПС. Я оставляю это в качестве упражнения на фильтрацию КОРНЕВОГО концентратора. Это своего рода способ сказать, что мне лень делать это самому.

Для немного другого списка, включая «Нет» и/или «С».unknownстатус, попробуйте это:

      Get-PnPDevice | Where-Object{[string]::IsNullOrEmpty($_.ClassGuid) } | Select-Object FriendlyName,Present,Status,DeviceID | Sort-Object FriendlyName
Другие вопросы по тегам