Резервное копирование (экспорт) и восстановление драйверов в Windows 10

После переустановки или чистой установки Windows пользователь сталкивается с необходимостью установки актуальных версий драйверов для устройств компьютера. Сразу после переустановки системы пользователю приходится вручную искать и скачивать необходимые драйвера. Однако есть более простой способ переустановки драйверов в Windows. Перед переустановкой Windows вы можете создать резервную копию всех установленных драйверов. Затем вы можете установить драйвера из резервной копии уже на чистой системе.

В этой статье мы покажем несколько способы создания резервной копии (бэкапа/экспорта) всех драйверов Windows и способы их восстановления с помощью встроенных инструментов (DISM, pnputil.exe или PowerShell командой Export-WindowsDriver).

PowerShell командлет Export-WindowsDriver

В Windows 10 и Windows Server 2019/2016 есть специальный Powershell командлет Export-WindowsDriver, который позволяет экспортировать все установленные в системе сторонние драйвера (имеются в виду не родные драйвера Microsoft) напрямую из хранилища драйверов (Driver Store). Данный командлет позволят существенно облегчить и ускорить процесс переустановки Windows, т.к. раньше для создания резервной копии драйверов, установленных в системе, приходилось использовать стороннее ПО, например, DoubleDriver, DriverMax и пр.

Чтобы извлечь из текущего (онлайн) образа Windows 10 все установленные драйвера сторонних производителей, откройте консоль PowerShell с правами администратора и выполните команду:

Export-WindowsDriver –Online -Destination c:\drivers

Примечание. C:\drivers каталог, в который нужно экспортировать файлы драйверов. Создайте его предварительно.

Если нужно извлечь драйвера из офлайн образа Windows, смонтированного, например, в каталог c:\win_image, команда должна выглядеть так.

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

После запуска командлета на экране появится информация о всех экспортируемых драйверах, которые не являются частью ОС. В результате выполнения команды PowerShell в целевом каталоге окажется резервная копия всех драйверов Windows из каталога C:\Windows\System32\DriverStore\FileRepository\. Каждый драйвер и все связанные с ним файлы сохраняется в собственный каталог, который называется по имени inf-файла драйвера.

Export-WindowsDriver powershell командлет для создания резервной копии драйверов в Windows со всеми 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"}

выбор драйверов по различным классам

Для удобства при экспорте можно назвать каталог с драйверами в соответствии с моделью компьютера и сразу сохранить бэкап драйверов в сетевой каталог, в котором вы храните драйвера для всех моделей компьютеров. В этом случае используйте команду:

Export-WindowsDriver -Destination "\\msk-fs01\drivers\desktop\$((Get-WmiObject -Class win32_computersystem).Model)" -Online

сохранить в сетевой каталог все драйвера для каждой модели компьютера

Как вы видите, создался каталог с названием модели компьютера и все драйвера сохранены в него.

Резервное копирование драйверов в Windows с помощью DISM

Для создания резервной копии драйверов и их импорта в образ Windows также можно использовать утилиту DISM. Чтобы экспортировать драйвера в каталог C:\Drivers, откройте командную строку с правами администратора и выполните команду:

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

Экспорт 1 из 27 — oem0.inf: Пакет драйверов успешно экспортирован.

бэкап драйверов с помощью dism /online /export-driver

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

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

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

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

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

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

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

С помощью pnputil вы можете экспортировать не только сразу все драйвера, но и один определенный драйвер. Для этого вам нужно получить имя его INF файла.

Полный список драйверов можно вывести так:

pnputil.exe /enum-drivers

Или с помощью PowerShell. Например, нам нужно экспортировать только драйвера сетевой карты Realtek:

Get-WindowsDriver -Online | where { ($_.ProviderName -like "Realtek") –and ($_.ClassName -like "Net")}

Скопируйте имя inf файла (oem5.inf) и выполните следующую команду для его экспорта:

Mkdir c:\drivers\realtek
pnputil.exe /export-driver oem5.inf c:\drivers\realtek

В результате вы экспортировали inf файл сетевого драйвера rt640x64.inf со всеми необходимыми файлами.

экспорт только одного определенного драйвера с помощью встроенной утилиты pnputil в Windows

Windows 10: восстановление драйверов из резервной копии

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

Чтобы установить конкретный драйвер, щелкните правой кнопкой по 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"
}

Данный PowerShell скрипт последовательно обходит все папки в указанном каталоге, ищет все inf файлы и устанавливает драйвера в хранилище драйверов (C:\Windows\System32\DriverStore) с помощью утилиты PNPUtil.

В Windows 10 и выше у утилитs pnputil появилась специальная опция subdirs, которая позволяет установить все драйвера из указанной папки (включая вложенные) с помощью однострочной команды:

pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install

Также можно импортировать все драйвера из каталога с резервной копией в офлайн Windows с помощью параметра Add-Driver утилиты DISM (в этом примере мы разрешаем установку неподписанных драйверов):

DISM /image:c:\win_image /Add-Driver /Driver:C:\Drivers /Recurse /ForceUnsigned

Пример добавления драйвер в офлайн образ Windows подробно описан в статье Интеграция драйверов USB 3.0 в дистрибутив Windows 7.

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


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

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

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

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