Есть ли способ командной строки для обнаружения неустановленных драйверов в DeviceManger?
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