Фантазія про чисте перевстановлення виглядає так: стираєш, встановлюєш, оновлюєш — готово. Реальність частіше така:
ваш Wi‑Fi відсутній, тачпад поводиться «як миша», а Диспетчер пристроїв — це виставка жовтих трикутників.
Десь посередині ви згадуєте, що ноутбук нормально працює тільки з правильними драйверами.
Виправлення — не в якому-небудь магічному оновлювачі драйверів. Це дисциплінований експорт тих драйверів, які ви вже знаєте працюють,
збережених у папці під вашим контролем, перевірених і готових до офлайн-встановлення. Це базова операційна гігієна.
Також це допомагає виглядати професійно, коли ви відновлюєте велику кількість машин.
Що ви фактично експортуєте (і що — ні)
У сучасному Windows «драйвери» — це не розкидана купа DLL у C:\Windows.
Канонічним джерелом є Driver Store у C:\Windows\System32\DriverStore\FileRepository.
Коли пристрій інсталюють, Windows розміщує пакет драйвера в Driver Store (INF + каталог + бінарні файли),
а потім створює прив’язку до конкретного пристрою. Цей етап розміщення — ключова концепція: якщо пакет розміщено,
ви зазвичай можете його експортувати.
Коли люди кажуть «експортувати встановлені драйвери», вони зазвичай мають на увазі «експорт розміщених пакетів драйверів
з Driver Store». Це добра новина: це найближче до кешу менеджера пакетів у Windows.
Саме тому перевстановлення може пройти безболісно: ви повертаєте відомо робочі пакети.
Чого ви не експортуєте:
- Прошивку (BIOS/UEFI, прошивка SSD, NVM Thunderbolt, прошивка док-станції). Це інший канал.
-
Контрольні панелі та додатки постачальника (суїти для GPU, аудіо-консолі, «оптимізатори»).
Це програми. Деякі корисні; багато — декоративні. - Майбутню поведінку Windows Update. Експорт не зупиняє Windows від пізнішого «допомагання».
- Ліцензійні токени для деяких пропрієтарних інструментів. Експорт INF-пакетів цього не вирішить.
Якщо ваша мета — «машина завантажується з робочими мережею, відображенням, зберіганням і вводом», експорт драйверів
— саме те, що потрібно. Якщо мета — «повернути кожен OEM-віждет до тієї ж атмосфери», то це ближче до іміджування та пакування додатків. Різні дисципліни.
Цікаві факти та історичний контекст (щоб дивні речі стали зрозумілі)
-
Windows XP популяризував епоху “driver CD”, бо вбудовані драйвери були мінімальними, а обладнання швидко змінювалося.
Це навчило покоління збирати інсталятори як запаси. -
Vista представила сучасну модель Driver Store, щоб зменшити «рулетку DLL» і зробити інсталяцію драйверів більш транзакційною.
Вона також зробила обслуговування драйверів менш містичним. - WHQL-підписування і .cat-каталоги стали важелем контролю для безпеки в режимі ядра. Тому непідписані kernel-драйвери здебільшого викликають проблеми.
- DISM виріс з інструменту розгортання в швейцарський ніж для офлайн-обслуговування, включно з драйверами в офлайн-образах Windows.
- “DCH драйвери” (Declarative, Componentized, Hardware Support Apps) змінили спосіб постачання деякими вендорами графіки/аудіо: більше драйвера, менше старих інсталяторів.
- Доставка драйверів через Windows Update стала масовою в еру Windows 10, що зменшило ручні інсталяції, але збільшило «неочікувані пониження версій».
- Рейтинг драйверів — реальний алгоритм (збіг, підпис, дата, версія). Windows не завжди вибирає «найновіший», вона вибирає «найкраще співпадіння» за правилами.
- INF-файли залишаються істинною правдою. Навіть з красивими інсталяторними пакетами, якщо ви не розумієте INF і його hardware ID, ви лише гадатимете.
Швидка діагностика: чому експорт/відновлення повільні або не вдаються
Під час експорту драйверів або їх відновлення після перевстановлення можна витратити години даремно.
Ось порядок триажу, який окупає час.
Перше: підтвердьте, що ви експортуєте з правильного джерела (Driver Store) і маєте достатні права
- Якщо
pnputilдає помилки доступу — ви не запустили консоль від імені адміністратора. - Якщо ви експортували з випадкових папок вендора — ви зібрали атмосфери, а не драйвери.
Друге: визначте клас проблемних драйверів (мережа/зберігання/дисплей) і пріоритезуйте завантаження
- Після перевстановлення немає мережі? Спочатку потрібні драйвери мережевої карти/Wi‑Fi, інакше “скачати їх” буде неможливо.
- Відсутній контролер зберігання? Інсталяційний носій може навіть не бачити диск. Це проблема до інсталяції ОС.
Третє: перевірте підписування і архітектурну невідповідність
- Непідписані або крос-підписані застарілі драйвери можуть розміщуватися, але не зв’язуватися, особливо на новіших збірках Windows.
- Невідповідність x86 і x64 все ще трапляється. Рідше зараз, але коли це відбувається — це критична зупинка.
Четверте: знайдіть вузьке місце (IO, антивірус, довжина шляху або обсяг)
- Експорт може бути повільним, якщо ви записуєте на ненадійний USB або якщо кожен файл сканує агресивний антивірус.
- Пакетів у Driver Store може бути багато. Якщо експорт з давнього ПК, очікуйте тисячі файлів.
П’яте: вирішіть, чи вам потрібно «все» або «тільки критичні пристрої»
- Експортувати все просто. Відновлювати все може створити конфлікти, якщо імпортувати застарілі пакети GPU/аудіо.
- Для парків машин краще мати кураторський базовий набір плюс доповнення за моделлю.
Золоті правила: що робити і чого уникати
Ви прагнете двох результатів: (1) папку, що дійсно містить інсталювані пакети драйверів, і (2) процес відновлення, що працює детерміновано під тиском.
Наступні правила відокремлюють «я зберіг драйвери» від «я зробив папку з надіями».
-
Експортуйте з Driver Store за підтримуваними інструментами. Використовуйте
pnputilі DISM.
Не збирайте файли зSystem32і не називайте це готовим рішенням. - Зробіть експортнім каталогом лише читаним після створення. Копіюйте, архівуйте, робіть контрольні суми. Не «чистіть» видаляючи файли, які не впізнаєте.
-
Розділяйте «драйвери» і «програмне забезпечення». Якщо потрібні додатки постачальника — пакуйте їх окремо.
Змішування ускладнює налагодження. - Зафіксуйте hardware ID критичних пристроїв. Особливо NIC і контролера зберігання. Це ваша карта, коли Windows поводиться дивно.
- Віддавайте перевагу чистим імпортам. Після перевстановлення розміщуйте потрібне, перевіряйте, а потім дозволяйте Plug and Play зв’язати пристрої.
- Не поводьтеся з оновленнями драйверів як із браузерними оновленнями. Новіше — не завжди краще; важливіше «працює з вашим обладнанням і збіркою ОС».
Ще одна операційна істина: експорт драйверів — це машини часу. Машини часу корисні, але вони також дозволяють з упевненістю повернути старі баги.
Практичні завдання: команди, очікуваний вивід і що вирішувати
Усі команди нижче припускають, що ви на Windows, але блоки консолі відформатовані як shell-транскрипти для читабельності.
Запускайте їх у підвищеному PowerShell або командному рядку, якщо не вказано інше.
Завдання 1: Підтвердьте збірку і редакцію Windows (має значення для політики драйверів)
cr0x@server:~$ cmd /c ver
Microsoft Windows [Version 10.0.19045.4046]
Що це означає: Номер збірки впливає на суворість підписування драйверів, доступність вбудованих драйверів та очікування вендорів.
Рішення: Якщо ви переходите між великими релізами (наприклад, з 19045 на 22631), очікуйте, що деякі застарілі драйвери відмовляться завантажуватися.
Завдання 2: Перевірте, чи у вас права адміністратора (експорт потребує прав)
cr0x@server:~$ powershell -NoProfile -Command "[Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent().IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)"
True
Що це означає: True означає, що ви можете експортувати з Driver Store і інсталювати пакети.
Рішення: Якщо False, зупиніться. Перезапустіть консоль «Запуск від імені адміністратора». Не витрачайте час на уявні проблеми з правами.
Завдання 3: Експортуйте всі розміщені драйвери через pnputil (основний інструмент)
cr0x@server:~$ pnputil /export-driver * "D:\DriverExport\WIN10-19045"
Exporting driver package: oem42.inf
Driver package exported successfully.
Exporting driver package: oem43.inf
Driver package exported successfully.
...
Total driver packages: 186
Exported driver packages: 186
Що це означає: Ви експортували пакети, що зараз розміщені в Driver Store. Кожен oemXX.inf відповідає пакету.
Рішення: Якщо кількість експортованих пакетів підозріло мала — можливо, у вас свіжа інсталяція (мало пакетів) або ви не були підвищені.
Завдання 4: Експорт драйверів через DISM (корисно для скриптів і перевірок паритету)
cr0x@server:~$ dism /online /export-driver /destination:"D:\DriverExport\WIN10-19045-DISM"
Deployment Image Servicing and Management tool
Version: 10.0.19041.3636
Exporting driver packages...
The operation completed successfully.
Що це означає: DISM експортував драйвери з працюючої ОС («online image»).
Рішення: Якщо DISM вдався, але pnputil — ні (або навпаки), ви дізналися щось про політику/права; збережіть успішний експорт.
Завдання 5: Перевірте, що в експорті є INF і каталоги (не тільки бінарні файли)
cr0x@server:~$ powershell -NoProfile -Command "Get-ChildItem -Recurse D:\DriverExport\WIN10-19045 -Include *.inf,*.cat | Select-Object -First 5 | Format-Table -AutoSize Name,Directory"
Name Directory
---- ---------
netrtwlane.inf D:\DriverExport\WIN10-19045\netrtwlane.inf_amd64_4f0c1c5a0a0c3b2d
netrtwlane.cat D:\DriverExport\WIN10-19045\netrtwlane.inf_amd64_4f0c1c5a0a0c3b2d
iaStorVD.inf D:\DriverExport\WIN10-19045\iastorvd.inf_amd64_2f7b4acb3e4a1c9b
iaStorVD.cat D:\DriverExport\WIN10-19045\iastorvd.inf_amd64_2f7b4acb3e4a1c9b
oemsetup.inf D:\DriverExport\WIN10-19045\oemsetup.inf_amd64_0d1a2b3c4e5f6a7b
Що це означає: Пакети драйверів цілі: INF описує інсталяцію, CAT забезпечує підпис, бінарні файли виконують роботу.
Рішення: Якщо ви бачите мало або взагалі немає .cat-файлів, можливо, експорт неповний або пакети застарілі; готуйтеся до проблем з підписами.
Завдання 6: Отримайте інвентар пакетів драйверів (що ви фактично захопили)
cr0x@server:~$ pnputil /enum-drivers
Published Name : oem42.inf
Original Name : netrtwlane.inf
Provider Name : Realtek Semiconductor Corp.
Class Name : Net
Class GUID : {4d36e972-e325-11ce-bfc1-08002be10318}
Driver Version : 11/10/2023 10.66.1234.2023
Signer Name : Microsoft Windows Hardware Compatibility Publisher
Published Name : oem43.inf
Original Name : iaStorVD.inf
Provider Name : Intel Corporation
Class Name : SCSIAdapter
Driver Version : 09/15/2022 19.5.0.1037
Signer Name : Microsoft Windows Hardware Compatibility Publisher
Що це означає: Це авторитетний список розміщених пакетів драйверів і їх метаданих.
Рішення: Збережіть цей вивід у файл поруч з експортною папкою. Це ваш інструмент для порівняння пізніше.
Завдання 7: Збережіть вивід enum у файл із позначкою часу (щоб довести, що змінились)
cr0x@server:~$ powershell -NoProfile -Command "pnputil /enum-drivers | Out-File -Encoding utf8 D:\DriverExport\WIN10-19045\driver-inventory.txt"
Що це означає: Тепер у вас є простий текстовий інвентар, який можна порівнювати між перевстановленнями або машинами.
Рішення: Якщо ви робите це для кількох машин, стандартизуйте імена файлів і додавайте ім’я хоста/модель.
Завдання 8: Визначте критичні пристрої та їх hardware ID (ціль відновлення)
cr0x@server:~$ powershell -NoProfile -Command "Get-PnpDevice -PresentOnly | Where-Object {$_.Class -in 'Net','Display','System','HDC'} | Select-Object -First 10 Status,Class,FriendlyName,InstanceId | Format-Table -AutoSize"
Status Class FriendlyName InstanceId
------ ----- ------------ ----------
OK Net Intel(R) Ethernet Connection PCI\VEN_8086&DEV_15F3&SUBSYS_...
OK Net Intel(R) Wi-Fi 6 AX201 160MHz PCI\VEN_8086&DEV_06F0&SUBSYS_...
OK Display NVIDIA GeForce RTX 3060 Laptop GPU PCI\VEN_10DE&DEV_2520&SUBSYS_...
OK HDC Standard SATA AHCI Controller PCI\VEN_8086&DEV_A352&SUBSYS_...
Що це означає: Ви збираєте ідентифікатори, які Windows використовує для зв’язування INF з пристроями.
Рішення: Збережіть ці ID. Якщо після перевстановлення пропаде Wi‑Fi, ви точно знатимете, який пакет драйверів має співпасти.
Жарт 1: Драйвери — як стажери: якщо не записати, що вони робили, наступний квартал ви будете відкривати це знову.
Завдання 9: Виявте «проблемні пристрої» перед перевстановленням (щоб не експортувати несправність)
cr0x@server:~$ powershell -NoProfile -Command "Get-PnpDevice | Where-Object {$_.Status -ne 'OK'} | Format-Table -AutoSize Status,Class,FriendlyName,InstanceId"
Status Class FriendlyName InstanceId
Error System PCI Encryption/Decryption... PCI\VEN_1022&DEV_...
Що це означає: У вас вже є пристрої в некоректному стані. Експорт поточного Driver Store не обов’язково виправить це пізніше.
Рішення: Дослідіть і усуньте проблему перед тим, як «заморозити» цю систему як базу. Інакше ви збережете несправність.
Завдання 10: Перевірте статус підпису на експортованих .cat файлах (для впевненості)
cr0x@server:~$ powershell -NoProfile -Command "Get-ChildItem -Recurse D:\DriverExport\WIN10-19045 -Filter *.cat | Select-Object -First 3 | ForEach-Object {Get-AuthenticodeSignature $_.FullName | Select-Object Status,SignerCertificate,Path} | Format-Table -AutoSize"
Status SignerCertificate Path
------ ----------------- ----
Valid [Subject] CN=Microsoft Windows Hardware Compatibility Publisher D:\DriverExport\WIN10-19045\netrtwlane.inf_amd64_...\netrtwlane.cat
Valid [Subject] CN=Microsoft Windows Hardware Compatibility Publisher D:\DriverExport\WIN10-19045\iaStorVD.inf_amd64_...\iaStorVD.cat
Valid [Subject] CN=Microsoft Windows Hardware Compatibility Publisher D:\DriverExport\WIN10-19045\oemsetup.inf_amd64_...\oemsetup.cat
Що це означає: Статус Valid — бажаний. NotSigned або UnknownError — червоний прапор.
Рішення: Якщо критичні пакети непідписані, плануйте труднощі з Secure Boot / підписуванням в режимі ядра після перевстановлення.
Завдання 11: Створіть маніфест контрольних сум для папки експорту (цілісність важлива)
cr0x@server:~$ powershell -NoProfile -Command "Get-ChildItem -Recurse D:\DriverExport\WIN10-19045 -File | Get-FileHash -Algorithm SHA256 | Export-Csv -NoTypeInformation D:\DriverExport\WIN10-19045\hashes-sha256.csv"
Що це означає: Ви пізніше зможете перевірити, що папка не пошкоджена через несправний USB або «дружнє» синхронне копіювання.
Рішення: Якщо хеші не збігаються в день відновлення — не імпортуйте. Скопіюйте заново з довіреного джерела.
Завдання 12: Відновлення драйверів після перевстановлення: розмістіть усе з папки
cr0x@server:~$ pnputil /add-driver "D:\DriverExport\WIN10-19045\*.inf" /subdirs /install
Processing inf: D:\DriverExport\WIN10-19045\netrtwlane.inf_amd64_...\netrtwlane.inf
Driver package added successfully.
Driver package installed on matching devices.
Processing inf: D:\DriverExport\WIN10-19045\iaStorVD.inf_amd64_...\iaStorVD.inf
Driver package added successfully.
Driver package installed on matching devices.
...
Що це означає: /add-driver розміщує пакети в новому Driver Store; /install запускає інсталяцію на відповідних пристроях.
Рішення: Якщо ви хочете максимального контролю — опустіть /install, спочатку розмістіть пакети, потім інсталюйте за класами пристроїв.
Завдання 13: Якщо пристрій досі відсутній — примусьте повторне сканування і перевірте стан
cr0x@server:~$ pnputil /scan-devices
Scanning for hardware changes...
Done.
Що це означає: Plug and Play переоцінював обладнання. Іноді цього достатньо після розміщення драйверів.
Рішення: Якщо пристрій лишається невідомим — переходьте до hardware ID і прямого вибору драйвера.
Завдання 14: Швидко знайдіть невідомі пристрої (триаж після перевстановлення)
cr0x@server:~$ powershell -NoProfile -Command "Get-PnpDevice | Where-Object {$_.Status -ne 'OK'} | Format-Table -AutoSize Status,Class,FriendlyName,Problem,InstanceId"
Status Class FriendlyName Problem InstanceId
------ ----- ------------ ------- ----------
Error Unknown Unknown device 28 PCI\VEN_8086&DEV_XXXX&SUBSYS_...
Що це означає: Код проблеми 28 зазвичай означає «не встановлено драйвери».
Рішення: Використайте hardware ID, щоб знайти відповідний INF у вашому експорті, або розмістіть відсутні пакети постачальника.
Завдання 15: Зіставте hardware ID з INF у папці експорту
cr0x@server:~$ powershell -NoProfile -Command "$id='PCI\VEN_8086&DEV_06F0'; Select-String -Path 'D:\DriverExport\WIN10-19045\*\*.inf' -Pattern $id -SimpleMatch | Select-Object -First 5"
D:\DriverExport\WIN10-19045\netwtw08.inf_amd64_...\netwtw08.inf: %NIC.DeviceDesc% = Install, PCI\VEN_8086&DEV_06F0
Що це означає: Ви знайшли пакет драйверів, що заявляє підтримку цього hardware ID.
Рішення: Якщо збігів немає — ваш експорт не містить потрібного пакета. Тоді його доведеться отримати з іншого джерела (OEM, вендор або Windows Update).
Завдання 16: Встановіть конкретний INF (точково, а не масово)
cr0x@server:~$ pnputil /add-driver "D:\DriverExport\WIN10-19045\netwtw08.inf_amd64_...\netwtw08.inf" /install
Driver package added successfully.
Driver package installed on matching devices.
Що це означає: Ви інсталювали таргетований пакет. Це правильний хід, коли підозрюєте конфлікти або застарілі GPU/аудіо драйвери.
Рішення: Використовуйте таргетовані інсталяції для графіки/аудіо; для bare-систем використовуйте масові інсталяції для чіпсету/мережі.
Завдання 17: Підтвердьте, що нова система дійсно зв’язала очікувану версію драйвера
cr0x@server:~$ powershell -NoProfile -Command "Get-PnpDevice -Class Net | Get-PnpDeviceProperty DEVPKEY_Device_DriverVersion | Select-Object -First 5 InstanceId,Data | Format-Table -AutoSize"
InstanceId Data
---------- ----
PCI\VEN_8086&DEV_06F0&SUBSYS_... 22.250.1.2
PCI\VEN_8086&DEV_15F3&SUBSYS_... 12.19.2.45
Що це означає: Ви можете довести, яка версія зараз використовується, а не лише які пакети розміщені.
Рішення: Якщо Windows зв’язала старіший або загальний драйвер — вирішіть, прийняти це (стабільність) чи примусово оновити (функції/продуктивність).
Завдання 18: Забороніть Windows Update негайно заміняти відомо робочі драйвери (контрольоване середовище)
cr0x@server:~$ reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v ExcludeWUDriversInQualityUpdate /t REG_DWORD /d 1 /f
The operation completed successfully.
Що це означає: Ця політика ускладнює доставку драйверів через якісні оновлення. Це не універсальний захист, але зменшує кількість змін.
Рішення: Використовуйте це для керованих парків або під час налагодження. На персональних машинах залиште за замовчуванням, якщо ви покладаєтеся на WU для драйверів.
Цитата (парафраз): Догма надійності Джина Кранца була приблизно «будь суворий і компетентний» — без виправдань, перевіряй системи і дотримуйся дисципліни.
Три корпоративні міні-історії з драйверних фронтів
Міні-історія 1: Інцидент через неправильне припущення (втрата Wi‑Fi)
Середня компанія провела оновлення ноутбуків в кількох відділах. Команда з розгортання мала чистий образ Windows,
набір додатків і оптимістичну віру в те, що «Windows знайде драйвери». Це добре працювало в офісі. Потім ноутбуки відправилися
до віддалених співробітників.
Першого дня частина користувачів побачила робочий стіл без прив’язаного Wi‑Fi-драйвера. Також не було Ethernet-портів — легкі ноутбуки, мало варіантів.
Образ не містив конкретного бездротового пакета для цієї ревізії моделі. В офісі док-станція з Ethernet маскувала проблему;
Plug and Play встановив інший NIC і ніхто не звернув увагу.
Плейбук служби підтримки був такий: «Підключіться до інтернету й запустіть оновлення». Це як сказати тонути, щоб допливти до човна, який ви не привезли.
Інцидент не виглядав драматично в метриках — жодних серверів не впало — але операційно це був повільний збій:
користувачі не могли аутентифікуватися в VPN, скачати драйвер і працювати.
Виправлення було болісно простим: експортувати відомо робочі NIC-драйвери з працюючого ПК, покласти їх у розгорткову шару і розміщувати під час іміджування.
Урок став гострішим: не вважайте мережеві драйвери опціональними. Це залежності завантаження.
Міні-історія 2: Оптимізація, що дала збій (дедуплікація експортів драйверів)
Інша організація захотіла «оптимізувати» збереження драйверів. Вони мали десятки моделей і експортували драйвери з кожного референтного ПК,
що призвело до великого репозиторію. Хтось запропонував дедуплікацію, видаливши «папки, що виглядають однаково», і залишив тільки найновіші версії по вендору.
На папері це виглядало розумно.
На практиці патерн найменування Driver Store (something.inf_amd64_hash) — не косметична деталь. Цей хеш корелює з точним
вмістом пакета і підписом каталогу. Два пакети з тим же вендором і схожими рядками версій можуть відрізнятися підтримуваними hardware ID,
co-installer-ами або додатковими INF.
Команда «оптимізувала» репозиторій і пізніше виявила, що в однієї моделі ноутбука зникли жести трекпада після перевстановлення.
Пристрій працював як базова HID-миша, тому проблема не була відразу помітна в smoke-тестах. Користувачі помітили це відразу, бо люди дуже чутливі
до того, що їхні пальці перестали робити те, що очікували.
Вони видалили старіший, специфічний для моделі пакет, який містив правильний hardware ID. Новіший «уніфікований» пакет не покривав цей підсистемний ID.
Відновлення репозиторію зайняло час і підірвало довіру до пайплайна розгортання.
Справжня оптимізація — не видаляти на око; це побудова маніфесту: модель → критичні hardware ID → валідація пакетів драйверів.
Зберігання дешевше, ніж ваш тиждень на виклики в нічний час.
Міні-історія 3: Нудна, але правильна практика, що врятувала день (інвентар + хеші)
Команда, що керувала невеликим VDI та кінцевими точками, мала політику: кожен експорт драйверів має включати (1) текстовий інвентар драйверів,
(2) знімки hardware ID для мережі/зберігання/дисплея, і (3) маніфест контрольних сум. Це було нудне, тому ніхто не хвалився.
Під час поспішного відновлення після інциденту з безпекою їм потрібно було швидко перевстановити набір машин, зберігаючи підтримку периферії
(читалки смарт-карт, USB-послідовні адаптери, нішеве аудіо). Вони взяли експортований пакет драйверів із мережевого шару і почали розміщувати.
Декілька інсталяцій завершувалися помилками читання файлів.
Завдяки хешам вони не витрачали час, звинувачуючи DISM, Windows або космічні промені. Вони перевірили експорт і знайшли корупцію в транспорті:
один зі сховищ під навантаженням мовчки втратив біти. Пакети драйверів були неповними, що пояснювало випадкові помилки інсталяції.
Вони відновили пакет із чистої копії, знову розмістили драйвери, і відновлення пройшло. Жодних героїчних вчинків, лише чеки й квитанції.
Жарт 2: «Резервний драйвер» без перевірки — як парашут, складений під час наради: технічно можливий, емоційно безвідповідальний.
Чеклісти / покроковий план
План A: Один ПК, ви хочете просте перевстановлення
-
Підготуйте носій: виберіть надійне місце з достатнім простором (зовнішній SSD краще, ніж випадковий USB-stick).
Створіть ім’я папки з OS build і моделлю машини. -
Експортуйте драйвери: запустіть
pnputil /export-driver *у цю папку. -
Збережіть інвентар: збережіть вивід
pnputil /enum-driversвdriver-inventory.txt. -
Зафіксуйте критичні hardware ID: запишіть ID NIC і контролера зберігання через
Get-PnpDevice. - Створіть хеші експорту: створіть SHA256 CSV-маніфест.
- Зробіть експорт тільки для читання: скопіюйте в два місця, якщо важливо (зовнішній носій + NAS). Не редагуйте на місці.
-
Після перевстановлення: розмістіть драйвери з папки за допомогою
pnputil /add-driver ... /subdirs. - Перевірте прив’язку: підтвердьте версії NIC-драйверів і відсутність «Unknown device» у Диспетчері пристроїв.
План B: Парк машин / корпоративне іміджування
- Встановіть еталонну машину для кожної моделі (або для родини моделей, якщо перевірили сумісність hardware ID).
-
Експортуйте драйвери та інвентар зі стандартною конвенцією імен:
MODEL-OSBUILD-DATE(дати допустимі в назв папок; у слагох і політиках уникайте дат). - Сформуйте “bootstrap pack”: NIC + зберігання + чіпсет + USB-контролери. Цей пакет має працювати офлайн.
- Тримайте “ризиковий пакет” окремо: GPU, аудіо, камера, Bluetooth — тут приховані конфлікти й регресії.
- Закріплюйте і тестуйте версії драйверів з невеликою групою. Ви не гонутися за «новішим», а за «нудно стабільним».
- Контрольні суми для всього і перевірка під час імпорту. Бітова корупція і ненадійні синхронізатори трапляються частіше, ніж здається.
- Документуйте відкат: якщо новий GPU-драйвер ламає зовнішні монітори, майте інструкцію повернення до попереднього пакета.
План C: Перед стиранням ви виявили нішеве обладнання
- Експортуйте драйвери негайно (pnputil).
- Визначте й зробіть скріншоти (або експортуйте) hardware ID невідомих/критичних пристроїв.
- Розмістіть експорт на другій машині, щоб підтвердити наявність правильних INF (пошук ID у INF).
- Лише після цього стирайте.
Поширені помилки: симптом → причина → виправлення
1) Симптом: Експорт «успішний», але відновлення нічого не інсталює
- Причина: Ви розмістили драйвери, але не запустили інсталяцію, або пристрої ще не перелічені.
- Виправлення: Використайте
pnputil /add-driver ... /install, потімpnputil /scan-devices. Перевірте статус черезGet-PnpDevice.
2) Симптом: Після відновлення Wi‑Fi відсутній і скачати драйвери неможливо
- Причина: Експорт не містить правильного пакета для конкретного hardware ID NIC (часто через ревізії моделі).
- Виправлення: Витягніть hardware ID з проблемної машини, знайдіть його в експортованих INF через
Select-String.
Якщо не знайдено — знайдіть правильний драйвер і додайте до репозиторію.
3) Симптом: «The third-party INF does not contain digital signature information»
- Причина: Непідписаний пакет драйверів, відсутній/некоректний .cat-файл або підпис блокується політикою/Secure Boot.
- Виправлення: Віддавайте перевагу підписаним пакетам. Якщо це справді необхідне застаріле обладнання — розгляньте контрольовані винятки (test signing / політика Secure Boot),
але трактуйте це як виняток з оформленням ризиків.
4) Симптом: Експорт займає вічність, диск горить, вентилятори ревуть
- Причина: Повільний носій призначення, антивірус сканує кожен витягнутий файл або переповнений Driver Store на довго живучій машині.
- Виправлення: Експортуйте спочатку на локальний SSD, потім копіюйте на зовнішнє сховище. За потреби тимчасово змініть політику AV.
Також розгляньте очищення застарілих пакетів (обережно) на джерельній системі перед тим, як робити її референсом.
5) Симптом: Після перевстановлення дисплей працює, але продуктивність жахлива (або зовнішні монітори не працюють)
- Причина: Windows прив’язала загальний драйвер відображення або неправильний вендорний пакет (часто з гібридною графікою).
- Виправлення: Використайте таргетовану інсталяцію INF для GPU-пакета. Перевірте прив’язану версію через
DEVPKEY_Device_DriverVersion.
Тримайте GPU-драйвери в окремому «ризиковому пакеті» для швидкого відкату.
6) Симптом: Тачпад/клавіатура працюють «так собі», жести/гарячі клавіші пропали
- Причина: Присутні драйвери HID, але відсутній вендорський extension або filter-драйвер.
- Виправлення: Знайдіть hardware ID пристрою і інсталюйте відповідний OEM-пакет. Не припускайте, що «це просто миша» — це не завжди прийнятно.
7) Симптом: Відновлення пройшло, але Windows Update «оновлює» драйвери і все повертається назад
- Причина: Доставка драйверів через Windows Update перезаписує ваш вибір за алгоритмом ранжування.
- Виправлення: Використайте політику, щоб виключити драйвери WU на час стабілізації, або фіксуйте версії через засоби управління.
Визначте, що для вас важливіше — стабільність чи автоматичні оновлення — і застосуйте рішення.
8) Симптом: Експортували драйвери з «працюючої» машини, але інша ідентична модель все одно не працює
- Причина: «Ідентична» не означає ідентична: інший постачальник NIC, інший subsystem ID, різний режим контролера зберігання або налаштування BIOS змінюють hardware ID.
- Виправлення: Захоплюйте hardware ID для кожної ревізії моделі. Не довіряйте маркетинговим назвам. Довіряйте PCI ID і subsystem ID.
Поширені запитання
1) Чим краще експортувати — pnputil чи DISM?
Використовуйте pnputil /export-driver * за замовчуванням. Це просто й добре узгоджується з відновленням через pnputil /add-driver.
DISM відмінний для офлайн-образів і для середовищ, що вже будуються навколо DISM-процесів. Якщо сумніваєтеся — експортуйте обома інструментами і порівняйте кількості.
2) Чи копіює експорт файли з System32?
Не так, як думають багато. Правильний експорт копіює розміщені пакети драйверів (INF/CAT/бінарні файли) з Driver Store.
Це інсталяційна одиниця. Випадкові файли в System32 часто є спільними компонентами і недостатні для повторної інсталяції.
3) Чи можна відновити драйвери без інтернету?
Так. Саме в цьому сенс. Розмістіть з вашої папки експорту за допомогою pnputil /add-driver ... /subdirs.
Для чистої інсталяції пріоритезуйте NIC і пакети зберігання, щоб система швидко стала самодостатньою.
4) Чи захопить це GPU-драйвери повністю?
Воно захопить розміщені пакети драйверів. Воно не обов’язково збере додаток від постачальника, сервіси телеметрії або «допоміжні» компоненти, що постачаються окремо.
Якщо вам потрібні й вони — пакуйте окремо.
5) Чи безпечно імпортувати все з папки експорту?
Зазвичай так — особливо на тій самій моделі. Але на довго працюючих системах може накопичуватися кілька версій GPU/аудіо драйверів.
Масовий імпорт може повторно ввести старі пакети, від яких ви б відмовилися. Для таких класів краще таргетовані інсталяції.
6) Чому Windows іноді вибирає інший драйвер, ніж той, що я розмістив?
Вибір драйвера базується на ранжуванні: якість збігу hardware ID, підпис, дата/версія та інші фактори.
Розміщення робить пакети доступними; воно не змушує вибір, якщо ви не інсталюєте конкретний пакет або не застосовуєте більш жорсткі кроки управління пристроями.
7) Скільки місця слід планувати для експорту?
Вартості сильно відрізняються. Типовий ноутбук може займати кілька гігабайт; машина, що оновлювалася роками, може бути більше.
Якщо експортуєте на USB, залиште запас — закінчення місця під час експорту — особливий вид уникнутих проблем.
8) Чи можна експортувати драйвери з офлайн-інсталяції Windows (не завантаженої)?
Так, за допомогою DISM проти шляху офлайн-образу, але це більше для розгортання й вимагає знати змонтований каталог Windows.
Для більшості людей простіше експортувати під час роботи системи.
9) Чи потрібно відключати Secure Boot, щоб відновити драйвери?
Ні для правильно підписаних драйверів. Якщо відновлення вимагає непідписаних kernel-драйверів — це виняткова ситуація.
Правильне рішення — використовувати підписані драйвери, а не послаблювати ланцюг завантаження.
10) Який найкращий спосіб підтримувати це з часом?
Трактуйте експорт драйверів як артефакти: версіонуйте їх за OS build і моделлю, додавайте інвентар і хеші, і не змінюйте їх.
Коли оновлюєте драйвер — створіть новий бандл. Старі бандли — ваша парашутна страховка.
Висновок: наступні кроки, які можна зробити сьогодні
Якщо нічого іншого не зробите — зробіть це: експортуйте розміщені драйвери за допомогою pnputil, збережіть інвентар і покладіть бандл у надійне місце.
Це вже переведе перевстановлення з «імпровізаційного театру» в «відтворювану процедуру».
Практичні кроки:
- Створіть
D:\DriverExport\YOURMODEL-OSBUILDі виконайте експорт. - Збережіть
driver-inventory.txtі SHA256 маніфест у тій самій папці. - Зафіксуйте hardware ID для NIC і контролерів зберігання.
- Після перевстановлення розмістіть драйвери з цієї папки, потім перевірте, що реально зв’язалось.
- Вирішіть, чи дозволити Windows Update змінювати драйвери під час стабілізації — і застосуйте політику.
Перевстановлення неминучі. Паніка — опціональна. Експортуйте драйвери, поки все працює, і майбутній ви зможе спокійно спати.