Резервная копия (экспорт) драйверов и их восстановление с помощью PowerShell в Windows 10 и 8.1

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

В этой статье мы покажем вам основные способы создания бэкапа (резервной копии) всех драйверов, установленных в Windows и способы восстановления драйверов из бэкапа без использования сторонних инструментов.

Экспорт драйверов с помощью командлета 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

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

Export-WindowsDriver  - бэкап установленных драйверов в каталог на диске

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

В каждом каталоге присутствуют все файлы, необходимый для установки драйвера в системе (не только inf файлы, но и все связанные sys, dll, exe и другие типы файлов). Командлет Export-WindowsDriver строит список файлов, которые необходимы для установки драйвера в соответствии со списком файлов, указанных в секции CopyFiles inf-файла драйвера.

inf файл драйвера

Чтобы отобразить список всех экспортируемых драйверов в удобном виде с указанием класса, производителя и версии драйвера, осуществим экспорт драйверов двумя командами:

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

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

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

Как вы видите, в получившейся таблице указан класс драйвера, производитель, версия и дата.

таблица со списком сторонних драйверов, установленных в Windows

Вы можете выгрузить информацию об экспортированных драйверах в 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 /online /export-driver

Как вы видите, в нашем примере утилита DISM успешно экспортировала в указанный каталог 27 драйверов.

Используем утилиту PNPUtil для создания резервную копии установленных драйверов

В состав всех версий Windows, начиная c Windows 7, входит утилита PNPUtil, которая обычно используется для добавления или удаления драйверов в Windows (ранее мы показывали как удалить старые версии драйверов из хранилища драйверов Windows для экономии места на диске).

Откройте командную строку с повышенными правами и выполните команду:

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

pnputil.exe export-driver (сохранить все драйвера в каталог drivers)

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

Восстановление драйверов из резервной копии

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

Вы можете установить конкретный драйвер, щелкнув правой кнопкой по INF файлу и выбрав пункт меню «Установить».

установить драйвер из 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, позволяющим создать резервную копию всех сторонних драйверов, установленные в системе, и экспортировать их в отдельную папку.


Предыдущая статья Следующая статья


Комментариев: 3 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)