Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Статьи о Microsoft Windows

Интеграция драйверов в дистрибутив Windows

  • 23 апреля 2015 |
  • Автор 
  • Печать
  • Эл. почта

Если Вы хотите, чтобы после установки Windows Вам не требовалось устанавливать драйверы на устройства компьютера, то Вы можете интегрировать их в дистрибутив.

В этой статье я расскажу, как интегрировать драйверы в дистрибутив Windows.

Вам понадобится средство Windows AIK или Windows ADK.

Я буду рассказывать на примере Windows ADK. Для Windows AIK будут другие пути к исполняемым файлам, но их названия такие же. Поэтому Вы сможете самостоятельно их найти, например воспользовавшись поиском.

Итак начнем.

Скопируем все файлы дистрибутива WIndows в папку компьютера. У меня она называется PRO.

Также у нас должна быть создана папка, в которую мы будем монтировать образ Windows install.wim. Я ее назвал IMG.

В папке Drivers у меня собраны драйверы моих устройств. Их нетрудно найти на официальных сайтах производителей этих устройств. Список сайтов наиболее популярных производителей я публиковал ранее. Драйвера должны быть распакованы. Т.е. интегрируются драйверы в формате файлов *.inf, *.sys и т.п.

Запускаем "Среда средств развертывания и работы с образами" из меню Пуск - Все программы - Windows Kits - Windows ADK.

Вызываем DISM с параметром /Get-WimInfo, который показывает информацию о install.wim:

DISM /Get-WimInfo /WimFile:"D:\Pro\sources\install.wim"

Cистема DISM Версия: 6.2.9200.16384

Сведения об образе : D:\Pro\sources\install.wim

Индекс: 1 Имя : Windows 7 PROFESSIONAL Описание : Windows 7 PROFESSIONAL Размер (байт): 18 473 214 093

Операция успешно завершена.

Нам здесь важно найти индекс. В моем случае это 1.

Монтируем образ с индексом 1 в папку IMG:

DISM /Mount-Wim /WimFile:"D:\Pro\sources\install.wim" /Index:1 /MountDir:D:\IMG

Cистема DISM
Версия: 6.2.9200.16384

Подключение образа
[==========================100.0%==========================]
Операция успешно завершена.

Для интеграции драйверов в дистрибутив запускаем команду:

DISM.exe /image:D:\Img /Add-Driver /driver:D:\Drivers /recurse /ForceUnsigned

Параметр /recurse позволяет брать дрова еще и из подпапок. Параметр /ForceUnsigned позволяет интегрировать неподписанные драйверы.

Теперь можно размонтировать образ из папки обратно в wim-файл, сохранив изменения:

DISM /Unmount-Wim /MountDir:D:\Img /Commit

Cистема DISM

Версия: 6.2.9200.16384

Файл образа: D:\TempMy\1\Pro\sources\install.wim

Индекс образа: 1

Сохранение образа

[==========================100.0%==========================]

Отключение образа

[==========================100.0%==========================]

Операция успешно завершена.

Готово.

В папке, в которую в начале мы копировали все файлы дистрибутива WIndows (у меня она называется PRO), находится дистрибутив с интегрированными драйверами.

Его можно скопировать на загрузочную флешку и устанавливать с нее ОС.

Как подготовить загрузочную флешку, я рассказывал ранее.

Как интегрировать в дистрибутив обновления Windows читайте здесь.

Обсудить статью можно на форуме

 

Последнее изменение Пятница, 09 сентября 2016 15:16

13 комментарии

  • Вячеслав

    Здравствуйте, Сергей!
    У меня вопрос-а как можно интегрировать драйверы в Win 8.1 и Win 10- ведь в дистрибутиве нет файла install.wim, а есть install.esd?
    Спасибо.

    написал Вячеслав 28.06.2016 23:36 Комментировать
  • Сергей

    Да, Вячеслав, есть такая проблема. Даже не проблема, а усложнение процесса.
    ESD - это по сути сжатый и зашифрованный WIM.
    В сети существуют различные программы, позволяющие из ESD получить WIM, и WIM сжать в ESD.
    Поищи ESD2WIM или ESD-decryptor.

    написал Сергей 01.07.2016 12:00 Комментировать
  • Аркадий

    Добрый день, Сергей,
    Вопрос: файлы драйверов перед интеграцией должны быть извлечены из архива, или это не обязательно?

    написал Аркадий 04.09.2016 19:12 Комментировать
  • Сергей

    Аркадий, драйвера должны быть распакованы. Т.е. интегрируются драйверы в формате файлов *.inf, *.sys и т.п.

    написал Сергей 09.09.2016 15:13 Комментировать
  • Игорь

    Здравствуйте! Подскажите пожалуйста! Что делать в случае, если индекса 2?

    написал Игорь 30.11.2016 08:24 Комментировать
  • Сергей

    Можно интегрировать в каждый индекс поочереди.
    А можно использовать параметр "index" и указать в качестве значения звездочку "*".
    /Index:*

    написал Сергей 02.12.2016 16:49 Комментировать
  • Anthony

    Здравствуйте, подходит ли эта процедура для windows xp embedded?

    написал Anthony 06.04.2017 16:01 Комментировать
  • Сергей

    Для Windows XP любых редакции эта процедура не подойдет - там совершенно другая модель дистрибутива. Там даже wim-файла нет.

    написал Сергей 13.04.2017 20:40 Комментировать
  • Андрей

    Добрый день. Подскажите пожалуйста, при интегрировании драйверов выдает ошибку 2.
    Не удалось получить доступ к образу.
    Убедитесь, что путь к образу и каталог Windows образа существуют и учетная запись обладает правами на чтение папки.
    DISM.exe /image:C:\intel\img/Add-Driver /driver:C:\Users\1\Desktop\drivers/recurse /ForceUnsigned
    пытаюсь проделать это с win 12 serv

    написал Андрей 29.10.2017 14:53 Комментировать
  • Сергей

    Андрей, проверьте наличие пробелов перед параметрами /Add-Driver, /recurse.
    Должно быть примерно так:
    DISM.exe /image:C:\intel\img /Add-Driver /driver:C:\Users\1\Desktop\drivers /recurse /ForceUnsigned

    написал Сергей 10.11.2017 20:22 Комментировать
  • Игорь

    Здравствуйте, я наверное накосячил, у меня после второй команды появилось
    "Ошибка: 0xc1420113
    Пользователь попытался подключить образ в каталоге, в котором уже содержится подключенный образ."
    подскажите пожалуйста, как решить?

    написал Игорь 16.11.2017 23:19 Комментировать
  • Сергей

    Похоже, что в папке, в которую Вы пытаетесь смонтировать образ, уже есть какие-то файлы.
    Или удалите эти файлы, или монтируйте в другую (чистую) папку.

    написал Сергей 12.12.2017 11:57 Комментировать
  • Александр

    Здравствуйте!
    Подскажите ,пожалуйста, в чем проблема. Во время интеграции драйверов выдает ошибку 0xc0000135.
    В логах следующее:
    2017-12-14 13:36:24, Info DISM DISM.EXE:
    2017-12-14 13:36:24, Info DISM DISM.EXE:
    2017-12-14 13:36:24, Info DISM DISM.EXE: Host machine information: OS Version=6.1.7601, Running architecture=amd64, Number of processors=4
    2017-12-14 13:36:24, Info DISM DISM.EXE: Executing command line: DISM.exe /image:D:\winpe\mount /Add-Driver /driver:D:\winpe\usb3 /recurse /ForceUnsigned
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Getting the collection of providers from a local provider store type. - CDISMProviderStore::GetProviderCollection
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Provider has not previously been encountered. Attempting to initialize the provider. - CDISMProviderStore::Internal_GetProvider
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Loading Provider from location C:\Windows\System32\Dism\WimProvider.dll - CDISMProviderStore::Internal_GetProvider
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Connecting to the provider located at C:\Windows\System32\Dism\WimProvider.dll. - CDISMProviderStore::Internal_LoadProvider
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Provider has not previously been encountered. Attempting to initialize the provider. - CDISMProviderStore::Internal_GetProvider
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Loading Provider from location C:\Windows\System32\Dism\FolderProvider.dll - CDISMProviderStore::Internal_GetProvider
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Connecting to the provider located at C:\Windows\System32\Dism\FolderProvider.dll. - CDISMProviderStore::Internal_LoadProvider
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Provider has not previously been encountered. Attempting to initialize the provider. - CDISMProviderStore::Internal_GetProvider
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Loading Provider from location C:\Windows\System32\Dism\CompatProvider.dll - CDISMProviderStore::Internal_GetProvider
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Connecting to the provider located at C:\Windows\System32\Dism\CompatProvider.dll. - CDISMProviderStore::Internal_LoadProvider
    2017-12-14 13:36:24, Info DISM DISM.EXE: Got the collection of providers. Now enumerating them to build the command table.
    2017-12-14 13:36:24, Info DISM DISM.EXE: Attempting to add the commands from provider: WimManager
    2017-12-14 13:36:24, Info DISM DISM.EXE: Succesfully registered commands for the provider: WimManager.
    2017-12-14 13:36:24, Info DISM DISM.EXE: Attempting to add the commands from provider: FolderManager
    2017-12-14 13:36:24, Info DISM DISM.EXE: Attempting to add the commands from provider: DISM Log Provider
    2017-12-14 13:36:24, Info DISM DISM.EXE: Attempting to add the commands from provider: Compatibility Manager
    2017-12-14 13:36:24, Info DISM DISM.EXE: Succesfully registered commands for the provider: Compatibility Manager.
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Getting the collection of providers from a local provider store type. - CDISMProviderStore::GetProviderCollection
    2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Getting the collection of providers from a local provider store type. - CDISMProviderStore::GetProviderCollection
    2017-12-14 13:37:27, Error DISM DismHostLib: Failed to create DismHostManager remote object. Checking for dismhost.exe exit code.
    2017-12-14 13:37:27, Info DISM DismHostLib: Found dismhost.exe exit code.
    2017-12-14 13:37:27, Error DISM DISM Manager: PID=5952 Failed to create Dism Image Session in host. - CDISMManager::LoadImageSession(hr:0xc0000135)
    2017-12-14 13:37:27, Warning DISM DISM Manager: PID=5952 A problem ocurred loading the image session. Retrying... - CDISMManager::CreateImageSession(hr:0xc0000135)
    2017-12-14 13:38:27, Error DISM DismHostLib: Failed to create DismHostManager remote object. Checking for dismhost.exe exit code.
    2017-12-14 13:38:27, Info DISM DismHostLib: Found dismhost.exe exit code.
    2017-12-14 13:38:27, Error DISM DISM Manager: PID=5952 Failed to create Dism Image Session in host. - CDISMManager::LoadImageSession(hr:0xc0000135)
    2017-12-14 13:38:27, Error DISM DISM Manager: PID=5952 Failed to load the image session from the temporary location: C:\Users\user\AppData\Local\Temp\3AE0DFBC-BBAE-4823-9B97-FF1E3E48EFA4 - CDISMManager::CreateImageSession(hr:0xc0000135)
    2017-12-14 13:38:27, Error DISM DISM.EXE: Could not load the image session. HRESULT=C0000135
    2017-12-14 13:38:27, Error DISM DISM.EXE: Unable to start the servicing process for the image at 'D:\winpe\mount'. HRESULT=C0000135
    2017-12-14 13:38:27, Info DISM DISM.EXE: Image session has been closed. Reboot required=no.

    написал Александр 14.12.2017 16:11 Комментировать

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

Поля, отмеченные звездочкой (*) обязательны для заполнения.

Наверх