DISM.exe - что это за зверь и с чем его едят?

Severnyj

Команда форума
Супер-Модератор
Ассоциация VN/VIP
Сообщения
8,480
Реакции
8,860
Баллы
753
В этой теме мы часто использовали инструмент под названием dism.exe. Для чего он нужен?

DISM - это консольная программа для управления образами .wim, с помощью него можно распаковывать (монтировать) файл образа, добавлять в файл образа дополнительные пакеты, интегрировать драйверы, выполнять настройку образа и затем снова упаковывать измененный образ в .wim-файл (демонтировать). Для того чтобы не указывать каждый раз полный путь к файлу программы, работать с ней необходимо из Командной строки средств развертывания, запущенной строго с администраторскими правами доступа.

Рассмотрим основные параметры командной строки средства DISM.

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

Код:
Dism /Mount-Wim /WimFile:<Путь к .wim-файлу> /index:1 /MountDir:<Путь к директории, куда будет смонтирован наш образ>
например:

Код:
Dism /Mount-Wim /WimFile:C:\winpe\winpe.wim /index:1 /MountDir:C:\winpe\mount
- то есть файл C:\winpe\winpe.wim будет распакован (смонтирован) в директорию C:\winpe\mount

После монтирования можно скопирвать наши пользовательские программы в директорию с распакованным образом.

Казалось, на этом можно и завершить операцию, упаковать наш образ обратно и записать на CD для дальнейшего применения. Но программа DISM предоставляет еще несколько возможностей, которыми грех не воспользоваться.

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

Код:
Dism /image:<Путь к директории со смонтированным образом> /Add-Driver /Driver:<Путь к .inf-файлу>
например:

Код:
Dism /image:C:\winpe\mount /Add-Driver /Driver:C:\Drivers\SCSIRAID\ATI\AMDHDC\amdhdc.inf
- здесь к образу, смонтированному в директорию C:\winpe\mount, мы добавили драйвер RAID-контроллера от ATI C:\Drivers\SCSIRAID\ATI\AMDHDC\amdhdc.inf


Интегрирование дополнительных пакетов. В смонтированный образ можно добавить следующие пакеты:

  • WinPE-FONTSupport-<регион>
    Дополнительная поддержка шрифтов для следующих языков: ja-JP, ko-KR, zh-CN, zh-HK и zh-TW.

  • WinPE-HTA
    Поддержка HTML-приложений. Позволяет создавать приложения с графическим интерфейсом пользователя, используя обработчик сценариев Internet Explorer и службы HTML.

  • Winpe-LegacySetup
    Пакет компонента программы установки Media. Все файлы программы установки из папки \Sources на диске с Windows. Добавьте этот пакет при обслуживании установки или папки \Sources на диске с Windows. Необходимо добавить с пакетом компонента программы установки. Чтобы добавить новый файл Boot.wim на диск, дополнительно к пакетам установки и Media добавьте любой дочерний пакет. Он необходим для поддержки установки Windows Server® 2008 R2.

  • WinPE-MDAC
    Поддержка компонентов доступа к данным Microsoft®. Позволяет отправлять запросы к серверам SQL с объектами Active Directory Objects (ADO). Пример использования: создание динамического файла автоматического запуска на основе уникальных системных сведений.

  • WinPE-PPPoE
    Включает поддержку протокола PPPoE. Позволяет создавать, подключать, отключать и удалять подключения по протоколу PPPoE из среды предустановки Windows.

  • WinPE-Scripting
    Поддержка сервера сценариев Windows (WSH). Позволяет производить пакетную обработку файлов с помощью объектов сценариев WSH.

  • WinPE-Setup
    Пакет компонента программы установки (родительский). Все файлы программы установки из папки \Sources, общей для клиента и сервера.

  • WinPE-Setup-Client
    Пакет компонента программы установки клиента (дочерний). Файлы фирменной настройки клиента для программы установки. Необходимо добавить после пакета компонента программы установки.

  • WinPE-Setup-Server
    Пакет компонента программы установки сервера (дочерний). Файлы фирменной настройки сервера для программы установки. Необходимо добавить после пакета компонента программы установки.

  • WinPE-SRT
    Пакет компонента среды восстановления Windows. Обеспечивает платформу восстановления для автоматической диагностики и восстановления системы, а также создание специализированных решений по восстановлению.

  • WinPE-WMI
    Поддержка инструментария управления Windows (WMI). Подмножество поставщиков WMI, обеспечивающее минимальную диагностику системы.

  • WinPE-WDS-Tools
    Пакет средств служб развертывания Windows. Содержит интерфейсы API, предоставляющие многоадресный сценарий с использованием пользовательского клиента служб развертывания Windows и служебную программу записи образов.

Делается это командой:

Код:
Dism /image:<Путь к директории со смонтированным образом> /Add-Package /PackagePath:<Путь к .cab-файлу>
например:

Код:
Dism /image:C:\winpe\mount /Add-Package /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-hta.cab"
- здесь к образу, смонтированному в директорию C:\winpe\mount, мы добавили пакет поддержки HTML-приложений.

Подробную информацию о пакетах можно узнать на этой странице.


Настройка доступной памяти в среде Windows PE. В процессе загрузки среды предустановки в оперативной памяти компьютера создается RAM-диск, куда извлекается все содержимое .wim-образа. Размер доступной системе и приложениям RAM устанавливается фиксированно и составляет по умолчанию: 32 MB. Если каким-либо приложениям не будет хватать этой доступной памяти - то работать они не будут. Размер доступной RAM в уже готовом образе изменить невозможно, однако в процессе подготовки образа, сделать это вполне реально, для этого запускаем DISM с такими папаметрами:

Код:
Dism /image:<Путь к директории со смонтированным образом> /Set-ScratchSpace:<Объем доступной RAM в MB>
например:

Код:
Dism /image:C:\winpe\mount /Set-ScratchSpace:128
- здесь мы установили размер доступной RAM - 128 MB. Увлекаться не стоит - данного значения с лихвой достаточно для большинства приложений.


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

Код:
Dism /Unmount-Wim /MountDir:<Путь к директории со смонтированным образом> /Commit
например:

Код:
Dism /Unmount-Wim /MountDir:C:\winpe\mount /Commit
- после завершения отключения, все изменения будут внесены в ранее распакованный файл C:\winpe\winpe.wim, а директория монтирования C:\winpe\mount будет очищена.

После данных действий выполняется копирование или экспортирование образа в подготовленную папку ISO и запись данной папки на CD или USB.
Об этом мы уже говорили здесь.


Решение проблем.

Несмотря на то, что если делать все по инструкции, проблем не возникает, кривые руки пользователя и нестабильность программы могут привести к проблемам, проявляющихся в ошибках при выполнении какой-либо команды.

Чаще всего ошибки возникают из-за того, что мы закрыли окно командной строки до окончания работы с DISM (окончанием является отключение образа и очистка директории монтирования) и решаются они путем отключения образа без сохранения внесенных изменений:

Код:
Dism /Unmount-Wim /MountDir:<Путь к директории со смонтированным образом> /discard
например:

Код:
Dism /Unmount-Wim /MountDir:C:\winpe\mount /discard
- отключение ранее смонтированного образа и очистка папки монтирования, без внесения изменений в образ.

Вторым способом (невзамимоисключающем) является команда удаления ресурсов:

Код:
Dism /Cleanup-Wim
- эта команда удаляет все ресурсы, связанные с подключенным WIM-образом, который был отключен. Эта команда не отключает подключенные в данный момент образы и не удаляет образы, которые могут быть подключены повторно.


На данный момент это все. Подробнее почитать о параметрах командной строки DISM можно на этой странице.
 
Последнее редактирование модератором:
Сверху Снизу