Резервное копирование (экспорт) и восстановление драйверов в 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:WindowsSystem32DriverStoreFileRepository
. Каждый драйвер и все связанные с ним файлы сохраняется в собственный каталог, который называется по имени 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:psdrivers_list.txt
Можно вывести список драйверов определенного класса устройств с помощью атрибута класса ClassName. Например, чтобы вывести только драйвера принтеров, выполните команду:
$BackupDrv | where { $_.classname -like "printer" }
Чтобы вывести список драйверов определенного производителя, воспользуйтесь командой:
$BackupDrv | Where{ $_.ProviderName -Match "NVIDIA"}
Export-WindowsDriver -Destination "msk-fs01driversdesktop$((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 успешно экспортировала в указанный каталог 27 драйверов.
Экспорт установленных драйверов с помощью утилиты PNPUtil
В состав всех версий Windows входит встроенная утилита
PNPUtil.exe
, которая обычно используется для добавления или удаления драйверов в Windows (ранее мы показывали как удалить старые версии драйверов из хранилища драйверов Windows для экономии места на диске). Утилиту PNPUtil также можно использовать для экспорта драйверов из хранилища Windows.
Откройте командную строку с повышенными правами и выполните команду:
pnputil.exe /export-driver * c: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:driversrealtek
pnputil.exe /export-driver oem5.inf c:driversrealtek
В результате вы экспортировали inf файл сетевого драйвера rt640x64.inf со всеми необходимыми файлами.
Windows 10: восстановление драйверов из резервной копии
После переустановки Windows вы можете использовать каталог с резервной копией драйверов для их установки в чистой системе.
Чтобы установить конкретный драйвер, щелкните правой кнопкой по 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:WindowsSystem32DriverStore) с помощью утилиты PNPUtil.
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 10
Резервное копирование (экспорт) и восстановление драйверов в Windows 10