Як переглянути список та керувати драйверами з PowerShell у Windows

Останнє оновлення: 04/12/2025
Автор: Ісаак
  • PowerShell Це дозволяє переглядати, фільтрувати та експортувати драйвери за допомогою командлетів, таких як Get-WmiObject та Get-WindowsDriver.
  • драйвер-запит, той/та/те/ті Диспетчер пристроїв та SCCM (Get-CMDriver) доповнюють інвентаризацію контролера.
  • Деякі динамічно завантажені драйвери потребують додаткових інструментів, таких як WinDbg або верифікатор.
  • Такі модулі, як PSWindowsUpdate та зовнішні утиліти, спрощують оновлення та підтримку драйверів в актуальному стані.

Список драйверів з PowerShell

У середовищах Windows, контролювати, які драйвери встановлені та яку версію має кожен з них Це ключ до підтримки стабільності системи, усунення несправностей синіх екранів або підготовки до міграції. PowerShell став неймовірно зручним інструментом для проведення такого типу інвентаризації без необхідності переглядати Диспетчер пристроїв по черзі.

У наступних рядках ви побачите Як перерахувати контролери з PowerShell різними способами та як їх експортувати до файлів, щоб спокійно їх проаналізувати, які відмінності між ними та іншими Команди як driverquery або графічні інструменти, і навіть як обробляти складніші сценарії, такі як автономні образи або динамічно завантажені драйвери.

Що таке драйвер і чому ви хочете отримати його список із PowerShell?

Драйвери пристроїв у Windows

У Windows контролер або драйвер – це невеликий блок програмного забезпечення, який діє як посередник між операційною системою та компонентом апаратні засоби (відеокарта, чіпсет, зберіганняпериферійні пристрої USBтощо). Хоча обсяг коду, який вони займають, не є величезним, їхній вплив на стабільність системи гігантський.

Коли критичний рушій (наприклад, сховище, мережа, графіка або чіпсет) несправності, можуть спричинити збої, втрату продуктивності та навіть сині екрани (BSOD)Ось чому наявність чіткого списку встановлених драйверів та їх версій так корисна під час налагодження помилок або підготовки до великого оновлення.

Перш ніж поспішати змінювати, видаляти або скасовувати драйвери, варто… мінімізуйте ризики за допомогою точки відновлення системиТаким чином, ви можете повернутися до попереднього стану, якщо оновлення драйвера піде не так, і комп'ютер почне дивно поводитися або навіть не завантажиться належним чином.

Окрім ресторану, бажано резервне копіювання важливих даних (документи, фотографії, робочі проекти тощо), особливо якщо ви збираєтеся торкатися драйверів сховища, оскільки помилка може призвести до того, що система неправильно змонтує диски або пошкодить інформацію.

Базова команда в PowerShell для перегляду встановлених драйверів

Найпряміший спосіб отримати інвентаризацію контролера з PowerShell – це покладатися на WMIОдна з найпоширеніших команд:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion

За допомогою цього командлета, PowerShell запитує клас WMI Win32_PnPSignedDriver і повертає список підписаних драйверів PnP разом з назвою пристрою та версією драйвера, яку система наразі пов'язала з ним.

Якщо вам потрібно трохи більше контексту щодо кожного драйвера, ви можете додати такі поля, як зрозуміла назва, дата публікації або виробник, Наприклад:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, FriendlyName, Manufacturer, DriverVersion, DriverDate

Завдяки цій консультації ви отримаєте Набагато повніша інформація для кожного записуЦе дозволяє виявляти старіші версії, певних виробників або драйвери, які не оновлювалися роками.

Як експортувати список драйверів у файл (TXT або CSV)

У реальних умовах простого перегляду списку на екрані рідко буває достатньо. Найзручніший підхід... зберегти результат у файл аналізувати його в Excel, ділитися ним з командою або зберігати як знімок стану системи перед внесенням будь-яких змін, наприклад, перед видалити старі драйвери.

Якщо вам потрібен лише швидкий список у звичайному текстовому форматі, ви можете перенаправити вивід у файл:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion > C:\drivers.txt

Ця команда створює файл C:\drivers.txt з простим списком пристроїв та версій. Ідеально підходить для швидкого доступу або додавання до звіту без зайвих клопотів.

Якщо ви шукаєте щось більш кероване для фільтрації та сортування, найкращим варіантом буде використання CSV та командлет Export-CSVДуже поширеним прикладом буде:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, FriendlyName, DriverVersion, DriverDate | Export-CSV -Path "./MisDrivers.csv" -NoTypeInformation

За допомогою цієї команди файл з назвою МоїДрайвери.csv які можна відкрити в Excel або будь-якій програмі для обробки електронних таблиць сортувати за версією, фільтрувати за датою драйвера, шукати певних виробників, І т.д.

Хоча іноді кажуть, що PowerShell «не дозволяє експортувати» список драйверів, насправді Так, його можна чудово експортувати. Використовуючи перенаправлення виводу або Export-CSV, як ви щойно бачили. Потім ви можете копіювати, вставляти або працювати з цією інформацією де завгодно.

  25 дивовижних інструментів для вилучення аудіофайлів із відео

Фільтрувати драйвери за виробником, назвою або певним текстом

Зазвичай, вам не потрібно бачити всі драйвери одразу, а краще зосередитися на певному виробнику або типі пристрою. Для цього ви можете ланцюжок фільтрів за допомогою Where-Object про властивості кожного драйвера.

Наприклад, якщо ви хочете зберегти лише драйвери для IntelВи можете зробити щось просте, як-от:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion | Where-Object { $_.DeviceName -like "*Intel*" }

Ця команда перебирає всі записи, повернуті WMI, та Він підтримує лише ті пристрої, назва яких містить рядок "Intel".Використання зірочки як символу підстановки дозволяє шукати часткові збіги будь-де в тексті.

Ту саму ідею можна використовувати для пошуку драйверів, пов'язаних з певною програмою або типом обладнання, наприклад, для оновити драйвери USBЯкщо ви знаєте частину назви, виробника або певну схему маршруту, ви можете адаптуйте фільтр до найкомфортнішої об'єкта в кожному випадку.

Перегляд драйверів з диспетчера пристроїв та інших інструментів Windows

Хоча PowerShell дуже потужний для автоматизації та експорту списків, Windows все ще пропонує класичні графічні інструменти для керування контролерами який слід знати та поєднувати зі шляхом команди.

Перша точка відліку – це Диспетчер пристроївДоступ до цього можна отримати, клацнувши правою кнопкою миші на «Цей ПК» та вибравши «Керування» або, швидше, скориставшись контекстним меню кнопки «Пуск» (Windows + X). Там ви побачите дерево з усіма категоріями обладнання, встановленого в системі.

Пристрої, які мають проблеми з встановленням або роботою, часто мають жовтий значок попередженняЯкщо двічі клацнути на будь-якому з них, відкриється вікно властивостей, де можна перевірити стан пристрою та отримати доступ до вкладки «Драйвер».

У цій вкладці ви знайдете такі опції, як «Відомості про драйвер», «Оновити драйвер», «Відкотити драйвер», «Вимкнути» або «Видалити»Ці дії дозволяють переглядати файли драйверів, шукати нові версії, повертатися до попередньої версії, вимикати пристрій без його видалення або повністю видаляти драйвер із системи.

Окрім цих інструментів, Windows містить команду driverquery використовувати з командний рядок (КМД). Біг driverquery Ви отримаєте список усіх встановлених драйверів, а також driverquery /v Ви побачите детальнішу інформацію, таку як використання пам’яті, дата збірки або стан.

driverquery та його зв'язок з PowerShell

Команда driverquery дуже гнучка та дозволяє Перегляд різних варіантів відображення стану водіяНаприклад, якщо ви хочете переглянути лише підписані драйвери детальніше, ви можете виконати:

driverquery /si

Цей режим показує підписані драйвери з додатковою корисною інформацією для аудитів безпеки або перевірок цілісності. І ви завжди можете звернутися driverquery /? щоб переглянути всі доступні параметри та налаштувати вихідний результат відповідно до ваших потреб.

Одна з переваг driverquery полягає в тому, що Ви можете інтегрувати його з PowerShell за допомогою ConvertFrom-CSVЯкщо ви згенеруєте вивід у форматі CSV та передасте його через конвеєр, ви отримаєте об'єкти, якими можна маніпулювати за допомогою PowerShell. Класичним прикладом буде:

driverquery.exe /v /fo csv | ConvertFrom-CSV | Select-Object "Display Name", "Start Mode", "Paged Pool(bytes)", Path

З цим ви поєднуєте Потужність driverquery з маніпуляціями даними PowerShellВибір лише тих стовпців, які вас цікавлять: ім'я для відображення, режим запуску, сторінкована пам'ять і шлях до драйвера на диску. Це корисно, коли потрібно фільтрувати за певними типами, такими як графічні драйвери.

Слід зазначити, що як driverquery, так і деякі стандартні WMI-запити зосереджені переважно на водії, зареєстровані в системі, багато з них завантажилися в завантаження або керуються через реєстр за адресою HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Деякі драйвери, які динамічно впроваджуються під час виконання, можуть не відображатися в цих списках.

Вивести драйвери з PowerShell за допомогою Get-WindowsDriver

Для складніших сценаріїв, особливо під час роботи з Автономні образи Windows (наприклад, підключені WIM), командлет дуже корисний Get-WindowsDriver, що є частиною інструментів DISM, доступних з PowerShell.

Цей командлет дозволяє відображати інформацію про пакети драйверів як для запущеної інсталяції Windows, так і для образу, змонтованого в папці. Основний синтаксис поділено на два основні режими використання: офлайн та онлайн.

  Як видалити файли, що використовуються, у Windows крок за кроком

Для офлайн-зображення, підключене до папкиЗагальна форма буде такою:

Get-WindowsDriver -Path "C:\offline"

А щоб працювати проти запущеної системи, ви б використовували параметр - Онлайн:

Get-WindowsDriver -Online

Без додаткових параметрів, Get-WindowsDriver повертає список драйверів сторонніх виробників присутній на зображенні. Якщо додати модифікатор -ВсеВи також побачите драйвери за замовчуванням, що входять до комплекту Windows.

Ключові параметри Get-WindowsDriver

Один з найважливіших параметрів – -Водійщо дозволяє вам вказати певний файл .inf або папка з файлами .inf Щоб отримати детальну інформацію про ці драйвери. Якщо вказати на папку, файли .inf, які не є дійсними пакетами драйверів, автоматично ігноруються.

Коли ви працюєте з автономним зображенням, параметр - Шлях вказує кореневий шлях змонтованого образу. Якщо папка Windows не знаходиться безпосередньо на цьому кореневому рівні, ви можете скористатися -Каталог Windows щоб вказати відносну підпапку, де вона розташована.

Параметр -Системний диск Він використовується в більш специфічних сценаріях, наприклад, під час роботи з Windows PE, коли менеджер завантаження знаходиться на іншому розділі. У цих випадках він служить для визначення диска, що містить файли BootMgr, які слід обслуговувати.

Щодо журналу активності, параметр -Шлях_до_журналу Це дозволяє визначити повний шлях до файлу журналу. Якщо ви його не зміните, використовується шлях за замовчуванням. %WINDIR%\Logs\Dism\dism.logабо в Windows PE, робочий простір в оперативній пам'яті. Тим часом, -Рівень журналу визначає детальність журналу, зі значеннями від помилок до включення інформації для налагодження.

Нарешті, параметр -Довідник з нуля Це тимчасова папка, куди файли розпаковуються під час операцій служби. Це має бути локальний шлях, і після завершення операції тимчасові файли Вони автоматично видаляються, щоб не залишалося жодних залишків.

Практичні приклади з Get-WindowsDriver

Щоб швидко переглянути всі драйвери для поточної інсталяції Windows, можна виконати таку команду:

Get-WindowsDriver -Online -All

Відобразиться ця команда усі драйвери (як системні, так і сторонні) присутній у запущеному образі. Це дуже прямий спосіб побачити, які пакети встановлені, без використання WMI або диспетчера пристроїв.

Якщо ви працюєте з a образ, змонтований у C:\offline А якщо ви хочете перевірити лише драйвери сторонніх виробників, ви можете зробити наступне:

Get-WindowsDriver -Path "C:\offline"

Якщо вам потрібен детальний звіт про певний OEM-драйвер у цьому образі, просто вкажіть файл .inf:

Get-WindowsDriver -Path "C:\offline" -Driver "OEM1.inf"

Ви навіть можете отримати доступ до файлу .inf, розташованого в певному шляху драйвера, наприклад:

Get-WindowsDriver -Path "C:\offline" -Driver "C:\drivers\Usb\Usb.inf"

У всіх цих випадках Get-WindowsDriver повертає об'єкти які ви можете передати до Select-Object, Where-Object або Export-CSV для фільтрації, сортування або експорту інформації у форматі, який вам найкраще підходить.

PowerShell та SCCM: Get-CMDriver для каталогів драйверів

Коли ви керуєте корпоративним середовищем за допомогою Менеджер конфігурацій (SCCM)Вас цікавлять не лише драйвери на кожному комп'ютері, але й централізований каталог драйверів, який SCCM підтримує для розгортання образів і пакетів.

У цьому контексті на допомогу приходить командлет. Get-CMDriver, Це працює для Отримання інформації з драйверів пристроїв, керованих Configuration ManagerЦей командлет має кілька підписів залежно від того, що потрібно запитувати: за назвою, за числовим ідентифікатором, за пакетом драйверів або за адміністративною категорією.

Базовий синтаксис включає такі варіанти, як:

Get-CMDriver

Get-CMDriver -DriverPackageId <String>

Get-CMDriver -DriverPackageName <String>

Get-CMDriver -Id <Int32>

Get-CMDriver -InputObject <IResultObject>

За допомогою цих параметрів ви можете спрямовувати свої запити до каталогу SCCM, фільтруючи за назва драйвера, ідентифікатор, пов'язані пакети або адміністративні категорії які ви визначили для організації ваших контролерів.

Приклади з Get-CMDriver

Якщо вам відома назва певного драйвера, наприклад, «Драйвер послідовного концентратора Surface», ви можете отримати його деталі за допомогою:

Get-CMDriver -Name "Surface Serial Hub Driver"

Коли вам потрібно перевірити кілька драйверів, які мають однаковий префікс у своїй назві (наприклад, усе сімейство драйверів Surface), і ви хочете побачити лише деякі відповідні властивості, ви можете використовувати щось на кшталт:

  Не вдалося отримати – помилка неадекватних дозволів у Chrome

Get-CMDriver -Fast -Name "Surface*" | Select-Object LocalizedDisplayName, DriverVersion, DriverDate

Модифікатор -Швидко Це зменшує обсяг отриманої інформації та пришвидшує запит, що досить помітно у великих каталогах. Потім, за допомогою Select-Object, Ви зберігаєте лише ті стовпці, які вам корисні для вашого аналізу.

Якщо ви керуєте адміністративними категоріями (наприклад, категорією "Поверхня", де ви групуєте всі ці контролери), ви можете поєднати пошук категорій та драйверів таким чином:

$category = Get-CMCategory -Name "Surface"
Get-CMDriver -Fast -AdministrativeCategory $category

У цьому випадку ви спочатку зберігаєте категорію у змінній, а потім просите Get-CMDriver повернути її вам. усі контролери, пов'язані з цією категорією, що дуже корисно для підтримки логічних представлень ваших контролерів у SCCM.

Обмеження під час переліку динамічно завантажених драйверів

Не всі драйвери поводяться однаково. Для цього є інструменти, наприклад, деякі з пакету. Sysinternals (наприклад, Process Explorer або handle.exe)які динамічно впроваджують драйвери в ядро ​​під час їх виконання, не реєструючи їх як традиційні служби, що завантажуються під час запуску.

Типовим прикладом є водій procexp152.sys (або попередні версії, такі як procexp113.sys), пов'язані з Process Explorer. Цей тип драйвера може не відображатися у стандартних запитах Get-WmiObject Win32_SystemDriverоскільки ці запити спираються на інформацію з служб реєстру (CurrentControlSet\Services) і зазвичай відображають переважно драйвери, завантажені разом із системою.

Крім того, driverquery може не відображати всі динамічно введені драйвериТож, якщо ви налагоджуєте BSOD або аномальну поведінку, спричинену сторонніми інструментами, які завантажують власні драйвери, вам, можливо, доведеться вдатися до інших методів.

Серед цих альтернатив є вивчити дампи пам'яті ядро за допомогою таких інструментів, як WinDbg, або утиліт, таких як verifier.exeПеревірник драйверів дозволяє вибирати драйвери, які потрібно відстежувати, та виявляти нестабільну поведінку, але графічний інтерфейс пропонує більше опцій перелічення, ніж версія командного рядка, яка зосереджена на запитах та налаштуванні перевірки.

Коротше кажучи, для загальної інвентаризації та для більшості адміністративних потреб, PowerShell, WMI та Get-WindowsDriver дуже добре охоплюють основи.Однак, у крайніх випадках налагодження гаряче завантажених драйверів, вам знадобиться доповнити це інструментами аналізу ядра.

Оновіть драйвери за допомогою PowerShell за допомогою PSWindowsUpdate

Окрім переліку драйверів, багато адміністраторів використовують PowerShell для автоматичне оновлення драйверів через Служба Microsoft Windows а також для оновити звукові драйвериОдин із поширених методів – це модуль PSWindowsUpdate, який розширює стандартні командлети оновлення.

Звичайний потік проходить через тимчасово дозволити виконання підписаних скриптівВстановіть модуль, а потім запитуйте оновлення драйверів безпосередньо із серверів Microsoft.

Типовий набір команд може бути таким:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Install-Module PSWindowsUpdate
Import-Module PSWindowsUpdate
Get-WindowsUpdate
Get-WindowsUpdate -MicrosoftUpdate -Category Driver -Install -AutoReboot

Ця послідовність дозволяє виконання скрипта для поточного сеансу, встановлює та імпортує модуль PSWindowsUpdate, Ви перевіряєте, які оновлення доступні. І нарешті, ви запитуєте їх встановлення з категорії «Драйвер» через Microsoft Update, що дозволить системі автоматично перезавантажитися за потреби.

Ви також можете розширити область застосування, використовуючи команду, яка встановлює всі оновлення, виявлені з Microsoft Update, і перезапускає систему без втручання, наприклад:

Get-WindowsUpdate -MicrosoftUpdate -Install -AutoReboot

Такий спосіб роботи особливо практичний у великі командні паркиСаме тут потрібно стандартизувати версії драйверів, не розглядаючи їх по одній. Однак завжди доцільно поєднувати це з гарним попереднім переліком драйверів, а в критичних середовищах тестувати їх у пілотній групі перед розгортанням на всю організацію.

Проблеми з периферійними пристроями Windows та драйверами
Пов'язана стаття:
Повний посібник з видалення пристроїв-привидів та драйверів-осиротілих у Windows