Резервна копія (експорт) драйверів і їх відновлення за допомогою PowerShell в Windows 10 і 8.1

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

У цій статті ми покажемо вам основні способи створення бекапа (резервної копії) всіх драйверів, встановлених в Windows і способи відновлення драйверів з резервної копії без використання сторонніх інструментів.

зміст:

  • Експорт драйверів за допомогою командлета Export-WindowsDriver
  • Бекап драйверів за допомогою DISM
  • Використовуємо утиліту PNPUtil для створення резервну копії встановлених драйверів
  • Відновлення драйверів з резервної копії

Експорт драйверів за допомогою командлета Export-WindowsDriver

У Windows 8.1 Update 1 з'явився новий Powershell командлет Export-WindowsDriver, дозволяє експортувати всі встановлені в системі сторонні драйвера (маються на увазі не рідні драйвера Microsoft) безпосередньо зі сховища драйверів (Driver Store). У всіх версіях Windows 10 командлет Export-WindowsDriver вже є в системі. Даний командлет дозволять істотно полегшити і прискорити процес перевстановлення Windows, тому що раніше для створення резервної копії драйверів, встановлених в системі, доводилося використовувати стороннє ПО, наприклад, DoubleDriver, DriverMax тощо.

Отже, щоб в Windows 10 або 8.1 безпосередньо у встановленій системі витягти з поточного способу всі встановлені драйвера сторонніх виробників, відкрийте консоль PowerShell з правами адміністратора і виконайте команду:

Export-WindowsDriver -Online -Destination c: \ drivers

Примітка. c: \ drivers - каталог, в який потрібно зберегти файли драйверів, повинен бути створений попередньо.

Якщо потрібно витягти драйвера з офлайн образу Windows, змонтованого, наприклад, в каталог c: \ win_image, команда повинна виглядати так.

Export-WindowsDriver -Path c: \ win_image -Destination c: \ drivers

Після запуску командлета на екрані з'явиться інформація про всіх експортованих драйвери, які не є частиною ОС.

В результаті виконання команди PowerShell ви отримаєте каталог з резервною копією всіх драйверів, встановлених в Windows. Кожен драйвер і всі пов'язані з ним файли зберігається в власний каталог, який називається по імені inf-файлу драйвера.

У кожному каталозі присутні всі файли, необхідний для установки драйвера в системі (не тільки inf файли, але і всі пов'язані sys, dll, exe і інші типи файлів). командлет Export-WindowsDriver будує список файлів, які необхідні для установки драйвера відповідно до списку файлів, зазначених в секції CopyFiles inf-файлу драйвера.

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

$ BackupDrv = Export-WindowsDriver -Online -Destination c: \ drivers

Після чого відобразимо результати виконання команди в табличній формі:

$ BackupDrv | Select-Object ClassName, ProviderName, Date, Version | Sort-Object ClassName

Як ви бачите, в вийшла таблиці вказаний клас драйвера, виробник, версія і дата.

Ви можете вивантажити інформацію про експортованих драйвери в CSV файл:

$ BackupDrv | Select-Object ClassName, ProviderName, Date, Version | Export-Csv c: \ ps \ drivers_list.txt

Можна вивести список драйверів певного класу пристроїв за допомогою атрибута класу ClassName. Наприклад, щоб вивести тільки драйвера принтерів, виконайте команду:

$ BackupDrv | where $ _. classname -like "printer"

Щоб вивести список драйверів певного виробника, скористайтеся командою:

$ BackupDrv | Where $ _. ProviderName -Match "NVIDIA"

Бекап драйверів за допомогою DISM

Утиліта DISM також надає можливість як створення резервної копії драйверів, так і їх імпорту в образ Windows.

Щоб експортувати всі драйвера в каталог C: \ Drivers, відкрийте командний рядок з правами адміністратора і виконайте команду:

dism / online / export-driver / destination: C: \ Drivers

Експорт 1 з 27 - oem0.inf: Пакет драйверів успішно експортований.

Як ви бачите, в нашому прикладі утиліта DISM успішно експортувала в зазначений каталог 27 драйверів.

Використовуємо утиліту PNPUtil для створення резервну копії встановлених драйверів

До складу всіх версій Windows, починаючи c Windows 7, входить утиліта PNPUtil, яка зазвичай використовується для додавання або видалення драйверів в Windows (раніше ми показували як видалити старі версії драйверів зі сховища драйверів Windows для економії місця на диску).

Відкрийте командний рядок з підвищеними правами і виконайте команду:

pnputil.exe / export-driver * c: \ drivers

Драйвера з отриманого каталогу з драйверами можна поширити на інші системи вручну за допомогою PowerShell або DISM (Як інтегрувати драйвера в образ Windows), або автоматизовано за допомогою скриптів на основі PNPUtil, DISM, PowerShell, MDT, SCCM тощо.

Відновлення драйверів з резервної копії

Після переустановлення системи ви можете використовувати каталог з резервною копією драйверів для установки в чистій системі.

Ви можете встановити конкретний драйвер, клацнувши правою кнопкою по INF файлу і вибравши пункт меню "встановити".

Також можна встановити драйвер конкретного пристрою через диспетчер обладнання. У диспетчері пристроїв виберіть пристрій, драйвер якого ви хочете замінити, виберіть пункт "оновити драйвер"->"Виконати пошук драйверів на цьому комп'ютері". Вкажіть шлях до каталогу з резервною копією драйверів. Щоб автоматично просканувати на відповідні драйвера всі вкладені папки, виберіть відповідну опцію.

Однак є більш простий спосіб установки відразу всіх драйверів, які присутні в резервної копії. Для цього скористайтеся наступним PowerShell скриптом:

$ Driver_inf_files = Get-ChildItem -Path "C: \ Drivers \" -Filter "* .inf" -Recurse -File
foreach ($ driver_inf_file in $ driver_inf_files)
$ driver_inf_file.FullName
pnputil.exe -i -a "$ driver_inf_file.FullName"

Даний PoSh скрипт послідовно обходить всі папки в зазначеному каталозі, шукає все inf файли і встановлює драйвера в сховище драйверів за допомогою утиліти PNPUtil.

Також можна імпортувати все драйвера з каталогу з резервною копією в образ Windows за допомогою параметра Add-Driver утиліти DISM:

DISM / online / Add-Driver / Driver: C: \ Drivers / Recurse

Можна додати драйвер як в онлайн, так і в офлайн образ Windows (див. Приклад Інтеграція драйверів USB 3.0 в дистрибутив Windows 7).

Отже, в цій статті ми розглянули різні способи експорт і імпорту драйверів в Windows. Також ми познайомилися з новим Командлети Export-WindowsDriver в Windows 10 і Windows 8.1 Update 1, що дозволяє створити резервну копію всіх сторонніх драйверів, встановлені в системі, і експортувати їх в окрему папку.