Вы можете существенно упростить развертывание операционной системы на типовых рабочих станциях (серверах), если заранее интегрируете все необходимые драйвера в хранилище драйверов (Drive Store) в вашем установочном образ Windows. В этом случае вам не придется после установки Windows вручную скачивать и устанавливать специфические драйвера (в том числе AHCI/RAID/NVMe) на каждый компьютер.
В этой статье мы покажем, как добавить драйвера устройств непосредственно в установочный офлайн образ Windows 10 (это может быть ISO/WIM файл или VHD/VHDX файл с шаблоном ОС). Инструкция применима для всех поддерживаемых версий Windows 11, 10, 8.1 и для Windows Server 2022, 2019, 2016, 2012 R2.
В современных редакциях Windows вы можете добавить драйвера в установочный ISO образ двумя способами:
- с помощью утилиты DISM;
- с помощью PowerShell.
Добавляем драйвера в образ Windows с помощью PowerShell
Скачайте и поместите все необходимые драйвера для устройств в один каталог (для каждого драйвера нужно создать отдельную папку). Обратите внимание, что многие производители (в том числе Dell, HP) поставляют свои драйвера в виде самораспаковывающихся exe файлов или zip архивов. Такие архивы необходимо распаковать на диск, чтобы в каталоге с драйверами присутствовали inf, cat и sys файлы.
Создайте следующую структуру каталогов:
- Каталог Drivers – в нем будут хранятся распакованные файлы драйверов для вашей редакции Windows 10 (которые предполагается интегрировать в дистрибутив);Вы можете скачать и распаковать необходимые файлы драйверов вручную или экспортировать все сторонние драйвера с эталонного компьютера, на котором уже установлены все необходимые драйвера с помощью командлета Export-WindowsDriver.
- Каталог ISO – в каталоге хранится распакованный iso образ Windows 10. Нам нужен только файл Install.wim из каталога Sources;
- Каталог Mount – пустой каталог, в который в дальнейшем будет смонтирован WIM образ Windows.
Выведите список всех версий Windows, которые содержатся в файле Install.wim с помощью командлета PowerShell Get-WindowsImage. Это позволит вам получить индекс редакции Widows, в которую планируется интегрировать дополнительные драйвера.
Get-WindowsImage -ImagePath C:\WinWork\ISO\install.wim
В нашем примере в WIM файле содержится всего 1 редакция Windows 10 Pro с индексом 1 (ImageIndex : 1).
dism /export-image /SourceImageFile:"C:\WinWork\ISO\install.esd" /SourceIndex:1 /DestinationImageFile:C:\WinWork\ISO\install.wim /Compress:max /CheckIntegrity
Далее необходимо смонтировать образ выбранной версии Windows в каталог Mount. Полученные выше индекс редакции Windows, которую необходимо смонтировать нужно указать в качестве аргумента Index:
Mount-WindowsImage -Path C:\WinWork\Mount\ -ImagePath C:\WinWork\ISO\install.wim -Index 1
После того, как образ смонтирован, вы можете добавить в него драйвера из каталога Drivers
Add-WindowsDriver -Path C:\WinWork\Mount\ -Driver C:\WinWork\Drivers -Recurse
Командлет Add-WindowsDriver осуществит рекурсивный поиск (параметр -Recurse) в указанном каталоге и подкаталогах всех .inf файлов с описаниями драйверов. По описанию в inf файле команда добавит зависимые INF, DLL, CAT, PNF и т.д. файлы в ваш образ Windows.
Итак, драйвера скопированы, и текущий образ можно отмонтировать, сохранив изменения в нем.
Dismount-WindowsImage -Path C:\WinWork\Mount\ –Save
В рассмотренном примере мы добавили драйверы в образ Windows в файле Install.WIM. Это образ Windows, который будет установлен на ваш диск. Если необходимо добавить драйвера в загрузочный образ Windows PE (с которого выполняется только установка Windows), необходимо добавить драйвера в файл Boot.wim. Обычно это необходимо, когда при установке Windows на компьютере не определяются локальные диски или отсутствует доступ к сети. Обычно в образ boot.wim достаточно добавить только драйвера контроллеров, дисков или сетевых адаптеров.
Вы можете сконвертировать ваш файл install.wim, содержащий установочный образ Windows с интегрированными драйверами в формат install.esd, применив сжатие (compress):
DISM /Export-Image /SourceImageFile:C:\WinWork\ISO\install.wim /SourceIndex:1 /DestinationImageFile:C:\WinWork\ISO\install.esd /Compress:recovery
Осталось создать iso файл и записать его на диск или флешку с помощью Dism++ или команды oscdimg:
oscdimg -n -m -bc:\WinWork\ISO\boot\etfsboot.com C:\WinWork\ISO C:\new_win10pro_image.iso
Данная команда сформирует ISO образ для установки на компьютер с BIOS или в режиме UEFI Legacy (CSM, compatible)
Для генерации универсального ISO образа с поддержкой UEFI и BIOS, используйте команду:
oscdimg.exe -h -m -o -u2 -udfver102 -bootdata:2#p0,e,bc:\winwork\iso\boot\etfsboot.com#pEF,e,bc:\winwork\iso\efi\microsoft\boot\efisys.bin -lWin10 c:\iso c:\new10image.iso
Для записи ISO образа на USB флешку проще всего использовать утилиту Rufus.
Теперь вы можете использовать ваш образ Windows для установки на компьютеры с локального устройства или по сети (с помощью PXE загрузки).
Интеграция драйверов в образ Windows Server с помощью DISM
Теперь покажем пример интеграции драйверов в установочный образ Windows Server 2022.
Структура каталогов, с которой мы будем работать может быть той же самой: Drivers (с здесь хранятся драйвера и *.inf файлы), ISO (распакованный образ Windows Server 2022), Mount (каталог монтирования образов). Все операции по модификации образа выполняются из Windows 10.
Выведите список редакций в WIM файле:
Dism /Get-ImageInfo /imagefile:"C:\iso\sources\install.wim"
В моем примере я хочу добавить драйвера в образ Windows Server 2022 Standard (Desktop Experience) с Index:2.
Смонтируйте установочный образ install.wim:
dism /mount-wim /wimfile:"C:\iso\sources\install.wim" /index:2 /mountdir:c:\mount
Теперь можно выполнить рекурсивный поиск и добавление новых драйверов в образ Windows Server 2022:
dism /image:c:\mount /Add-Driver /driver:c:\drivers\ /recurse
Для каждого успешно добавленного драйвера появится надпись:
driver.inf: The driver package was successfully installed
Сохраните изменения в образе:
dism /unmount-wim /mountdir:c:\mount /commit
Если необходимо добавить драйвера во все редакции Windows Server в установочном образе, указанные операции нужно выполнить для всех индексов в файле install.wim.
Кроме интеграции драйверов, вы можете добавить в устанавливаемый образ Windows еще и обновления безопасности (Как интегрировать обновления в установочный образ Windows), это повысит уровень защиты ОС сразу после установки. Осталось записать обновленный установочный образ на загрузочный диск или USB флешку или сконвертировать его в ISO.
Удаление драйверов из образа Windows
В некоторых случаях вам может понадобится удалить драйвера из установочного WIM образа Windows (при удалении старых/некорректных драйверов, или для уменьшения размера ISO образа).
Для этого, смонтируйте офлайн образ WIM в локальную папку:
Mount-WindowsImage -Path C:\Mount\ -ImagePath C:\iso\sources\install.wim -Index 2
Вывести список сторонних драйверов в образе:
Get-WindowsDriver -Path "c:\Mount"
Чтобы удалить определенный драйвер, нужно указать имя его inf файла (oem<number>.inf):
Remove-WindowsDriver -Path "c:\offline" -Driver "OEM0.inf"
Можно удалить из образа драйвера определенного вендора:
$drivers = get-windowsdriver -path C:\mount$drivers | where-object {$_."ProviderName" -eq 'Intel' } | Remove-WindowsDriver -Path C:\Mount
Сохраните изменения в образе:
Dismount-WindowsImage -Path C:\Mount -save