- Обзор
- Обозначения переменных
- Шаг 1: Выбор цели (/Online или /Image)
- Шаг 2: Просмотр компонентов (/Get-Features, /Get-FeatureInfo)
- Шаг 3: Включение/выключение компонентов (/Enable-Feature, /Disable-Feature)
- Шаг 4: Просмотр Capabilities (/Get-Capabilities, /Get-CapabilityInfo)
- Шаг 5: Добавление/удаление Capabilities (/Add-Capability, /Remove-Capability)
- Шаг 6: Ремонт образа и Component Store (/Cleanup-Image)
- Шаг 7: Сведения об образах (/Get-ImageInfo)
- Шаг 8: Монтирование/размонтирование офлайн-образа
- Шаг 9: Интеграция драйверов, пакетов и языков
- Шаг 10: Захват, экспорт и применение образов
- Шаг 11: Эквиваленты в PowerShell
- Итоги
Обзор
В статье параллельно рассматриваются DISM (Deployment Image Servicing and Management) и PowerShell (обёртки API DISM). Операции сгруппированы с примерами, опциями и ожидаемым поведением.
Обозначения переменных
| Переменная | Пример | Примечание |
|---|---|---|
<<IMAGE_PATH>> |
C:\mount или E:\Windows |
Путь для /Image: на офлайн-Windows (смонтированная папка или каталог Windows на другом диске) |
<<FEATURE_NAME>> |
NetFx3 |
Имя компонента Windows |
<<CAPABILITY_NAME>> |
OpenSSH.Client~~~~0.0.1.0 |
Расширение (FoD: Features on Demand) |
<<WIM_PATH>> |
D:\sources\install.wim |
Файл образа WIM/ESD |
<<INDEX>> |
1 |
Индекс образа |
<<MOUNT_DIR>> |
C:\mount |
Точка монтирования |
<<DRIVER_DIR>> |
D:\drivers |
Каталог с INF драйверов |
<<PACKAGE_PATH>> |
C:\Updates\kb5005565.cab |
Файл пакета обновления |
<<LANG_PACK>> |
C:\LP\ja-jp\lp.cab |
CAB языкового пакета |
<<SOURCE_PATH>> |
D:\sources\sxs |
Источник (например, для NetFx3) |
<<APPLY_DIR>> |
C:\ |
Папка назначения |
<<SCRATCH_DIR>> |
C:\Temp\Scratch |
Рабочий каталог |
<<LOG_PATH>> |
C:\Temp\dism.log |
Путь к логу |
Почти во всех командах доступны
/ScratchDir:<<SCRATCH_DIR>>и/LogPath:<<LOG_PATH>>.
Шаг 1: Выбор цели (/Online или /Image)
Большинство команд DISM требуют явного указания цели.
| Опция | Значение | Пример |
|---|---|---|
/Online |
Текущая запущенная система | dism /Online /Cleanup-Image /CheckHealth |
/Image:<<IMAGE_PATH>> |
Офлайн-Windows или смонтированный образ | dism /Image:C:\mount /Add-Driver /Driver:D:\drivers /Recurse |
Шаг 2: Просмотр компонентов (/Get-Features, /Get-FeatureInfo)
Описание
Получение списка компонентов и их состояния (Enabled / Disabled / DisabledWithPayloadRemoved).
Основные опции
| Опция | Значение | Пример |
|---|---|---|
/Online |
По активной ОС | dism /Online /Get-Features |
/Image:<<IMAGE_PATH>> |
По офлайн-образу | dism /Image:C:\mount /Get-Features |
/Get-Features |
Список компонентов | dism /Online /Get-Features /Format:Table |
/Get-FeatureInfo |
Детали компонента | dism /Online /Get-FeatureInfo /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
Имя компонента | NetFx3 |
/Format:Table |
Табличная выдача | dism /Online /Get-Features /Format:Table |
Примеры
# Список всех компонентов со статусом
dism /Online /Get-Features /Format:Table
# Детали компонента NetFx3
dism /Online /Get-FeatureInfo /FeatureName:NetFx3
DisabledWithPayloadRemovedозначает, что полезная нагрузка удалена — указывайте/Source.
Шаг 3: Включение/выключение компонентов (/Enable-Feature, /Disable-Feature)
Описание
Включение/отключение, например, .NET Framework 3.5 или SMB 1.0.
Основные опции
| Опция | Значение | Пример |
|---|---|---|
/Online |
По активной ОС | dism /Online /Enable-Feature /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
Имя компонента | NetFx3 |
/All |
Включить зависимости | |
/Source:<<SOURCE_PATH>> |
Источник при удалённой нагрузке | dism /Online /Enable-Feature /FeatureName:NetFx3 /Source:D:\sources\sxs |
/LimitAccess |
Не использовать WU/WSUS | |
/Enable-Feature |
Включить компонент | dism /Online /Enable-Feature /FeatureName:SMB1Protocol |
/Disable-Feature |
Отключить компонент | dism /Online /Disable-Feature /FeatureName:SMB1Protocol |
/LogPath:<<LOG_PATH>> |
Путь к логу |
Примеры
# Включить .NET Framework 3.5 (NetFx3) из локального источника (без интернета)
dism /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:<<SOURCE_PATH>> /LogPath:<<LOG_PATH>>
# Отключить SMB1 для повышения безопасности
dism /Online /Disable-Feature /FeatureName:SMB1Protocol /LogPath:<<LOG_PATH>>
Шаг 4: Просмотр Capabilities (/Get-Capabilities, /Get-CapabilityInfo)
Описание
Список FoD-компонентов и их состояние: RSAT, OpenSSH.Client, Language.Basic и т.д.
Основные опции
| Опция | Значение | Пример |
|---|---|---|
/Online |
По активной ОС | dism /Online /Get-Capabilities |
/Image:<<IMAGE_PATH>> |
По офлайн-образу | dism /Image:C:\mount /Get-Capabilities |
/Get-Capabilities |
Перечень capabilities | dism /Online /Get-Capabilities /Format:Table |
/Get-CapabilityInfo |
Детали capability | dism /Online /Get-CapabilityInfo /CapabilityName:OpenSSH.Client~~~~0.0.1.0 |
/Format:Table |
Табличная выдача | dism /Online /Get-Capabilities /Format:Table |
Примеры
# Полный список
dism /Online /Get-Capabilities /Format:Table
# Детали конкретной capability
dism /Online /Get-CapabilityInfo /CapabilityName:<<CAPABILITY_NAME>>
Capabilities можно добавлять из Windows Update, WSUS или ISO/шары.
Шаг 5: Добавление/удаление Capabilities (/Add-Capability, /Remove-Capability)
Описание
Установка или удаление FoD (например, OpenSSH, RSAT).
Основные опции
| Опция | Значение | Пример |
|---|---|---|
/Online |
По активной ОС | dism /Online /Add-Capability |
/CapabilityName:<<CAPABILITY_NAME>> |
Имя capability | OpenSSH.Client~~~~0.0.1.0 |
/Source:<<SOURCE_PATH>> |
ISO FoD или общая папка | dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0 /Source:D:\ /LimitAccess |
/LimitAccess |
Использовать только указанный источник | |
/LogPath:<<LOG_PATH>> |
Путь к логу |
Примеры
# Добавить OpenSSH.Client
dism /Online /Add-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
# Удалить ненужный RSAT
dism /Online /Remove-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
Шаг 6: Ремонт образа и Component Store (/Cleanup-Image)
Описание
Поиск/исправление повреждений WinSxS и оптимизация места.
Основные опции
| Опция | Значение | Пример |
|---|---|---|
/Online |
По активной ОС | dism /Online /Cleanup-Image /CheckHealth |
/CheckHealth |
Быстрая проверка | |
/ScanHealth |
Глубокое сканирование | |
/RestoreHealth |
Ремонт | dism /Online /Cleanup-Image /RestoreHealth |
/Source:<<SOURCE_PATH>> |
Источник ремонта | |
/LimitAccess |
Без Windows Update | |
/StartComponentCleanup |
Очистка старых обновлений | |
/ResetBase |
Фиксация базы (без отката) | |
/AnalyzeComponentStore |
Анализ размера хранилища |
Примеры
# Быстрая проверка
dism /Online /Cleanup-Image /CheckHealth
# Глубокое сканирование
dism /Online /Cleanup-Image /ScanHealth
# Ремонт с указанием источника
dism /Online /Cleanup-Image /RestoreHealth /Source:<<SOURCE_PATH>> /LimitAccess /LogPath:<<LOG_PATH>>
# Очистка и фиксация базы
dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase /LogPath:<<LOG_PATH>>
Шаг 7: Сведения об образах (/Get-ImageInfo)
Основные опции
| Опция | Значение | Пример |
|---|---|---|
/Get-ImageInfo |
Информация о WIM/ESD | dism /Get-ImageInfo /ImageFile:install.wim |
/ImageFile:<<WIM_PATH>> |
Целевой WIM | |
/Index:<<INDEX>> |
Нужный индекс | |
/LogPath:<<LOG_PATH>> |
Путь к логу |
Пример
# Эдиции и индексы install.wim
dism /Get-ImageInfo /ImageFile:<<WIM_PATH>> /LogPath:<<LOG_PATH>>
Шаг 8: Монтирование/размонтирование офлайн-образа
Основные опции
| Опция | Значение | Пример |
|---|---|---|
/Mount-Wim |
Монтировать WIM | |
/WimFile:<<WIM_PATH>> |
Входной WIM | |
/Index:<<INDEX>> |
Индекс образа | |
/MountDir:<<MOUNT_DIR>> |
Точка монтирования | |
/ReadOnly |
Только чтение | |
/Get-MountedWimInfo |
Текущие монтирования | |
/Unmount-Wim |
Размонтировать | |
/Commit |
Сохранить изменения | |
/Discard |
Отменить изменения |
Примеры
# Монтирование для редактирования
dism /Mount-Wim /WimFile:<<WIM_PATH>> /Index:<<INDEX>> /MountDir:<<MOUNT_DIR>>
# Проверить состояние монтирований
dism /Get-MountedWimInfo
# Сохранить и размонтировать
dism /Unmount-Wim /MountDir:<<MOUNT_DIR>> /Commit
Шаг 9: Интеграция драйверов, пакетов и языков
Основные опции
| Опция | Значение | Пример |
|---|---|---|
/Online |
По активной ОС | |
/Image:<<MOUNT_DIR>> |
По офлайн-образу | |
/Add-Driver |
Добавить драйверы | |
/Driver:<<DRIVER_DIR>> |
Каталог с INF | |
/Recurse |
Включить подкаталоги | |
/Add-Package |
Добавить пакет/язык | |
/PackagePath:<<PACKAGE_PATH>> |
Путь к пакету | |
/Set-AllIntl:ja-JP |
Задать локаль |
Примечания:
/Add-Driver— только офлайн./Add-Packageи/Set-AllIntlработают как онлайн, так и офлайн.
Примеры
# Интеграция драйверов
dism /Image:<<MOUNT_DIR>> /Add-Driver /Driver:<<DRIVER_DIR>> /Recurse
# Интеграция обновления
dism /Image:<<MOUNT_DIR>> /Add-Package /PackagePath:<<PACKAGE_PATH>>
# Добавление языкового пакета и установка локали
dism /Image:<<MOUNT_DIR>> /Add-Package /PackagePath:<<LANG_PACK>>
dism /Image:<<MOUNT_DIR>> /Set-AllIntl:ja-JP
Шаг 10: Захват, экспорт и применение образов
Основные опции
| Опция | Значение | Пример |
|---|---|---|
/Capture-Image |
Захват папки в WIM | |
/ImageFile:<<WIM_PATH>> |
Выходной WIM | |
/CaptureDir:<<APPLY_DIR>> |
Исходная папка | |
/Name:"<имя>" |
Имя образа | |
/Export-Image |
Переэкспорт/сжатие WIM | |
/Apply-Image |
Применить WIM | |
/Compress:max |
Максимальное сжатие | |
/ApplyDir:<<APPLY_DIR>> |
Папка назначения |
Примеры
# Захват текущей конфигурации в WIM
dism /Capture-Image /ImageFile:D:\Custom.wim /CaptureDir:<<APPLY_DIR>> /Name:"Custom Image"
# Переэкспорт с максимальным сжатием
dism /Export-Image /SourceImageFile:<<WIM_PATH>> /SourceIndex:<<INDEX>> /DestinationImageFile:D:\install_compressed.wim /Compress:max
# Применение образа
dism /Apply-Image /ImageFile:<<WIM_PATH>> /Index:<<INDEX>> /ApplyDir:<<APPLY_DIR>>
Шаг 11: Эквиваленты в PowerShell
Быстрая карта
| Раздел | DISM | PowerShell | Назначение |
|---|---|---|---|
| Просмотр компонентов | /Get-Features, /Get-FeatureInfo |
Get-WindowsOptionalFeature |
Список/детали |
| Вкл/выкл компонентов | /Enable-Feature, /Disable-Feature |
Enable-WindowsOptionalFeature, Disable-WindowsOptionalFeature |
Управление |
| Просмотр capabilities | /Get-Capabilities, /Get-CapabilityInfo |
Get-WindowsCapability |
Список/детали |
| Добавить/удалить capabilities | /Add-Capability, /Remove-Capability |
Add-WindowsCapability, Remove-WindowsCapability |
FoD |
| Пакеты: просмотр/добавление | /Get-Packages, /Add-Package |
Get-WindowsPackage, Add-WindowsPackage |
Обновления/языки |
| Драйверы: список/добавить/удалить | /Get-Drivers, /Add-Driver, /Remove-Driver |
Get-WindowsDriver, Add-WindowsDriver, Remove-WindowsDriver |
В основном офлайн |
| Сведения/монтирование WIM | /Get-ImageInfo, /Mount-Wim, /Unmount-Wim |
Get-WindowsImage, Mount-WindowsImage, Dismount-WindowsImage |
Управление WIM |
11.1 Компоненты (Features)
Get-WindowsOptionalFeature
| Опция | Значение | Пример |
|---|---|---|
-Online |
По активной ОС | Get-WindowsOptionalFeature -Online -FeatureName <<FEATURE_NAME>> |
-Path <<IMAGE_PATH>> |
По офлайн-образу | Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> |
-FeatureName <<FEATURE_NAME>> |
Конкретный компонент | -FeatureName NetFx3 |
# Все компоненты (online)
Get-WindowsOptionalFeature -Online
# Детали (offline)
Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> -FeatureName <<FEATURE_NAME>>
Enable-/Disable-WindowsOptionalFeature
| Опция | Значение | Пример |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Выбор цели | Enable-WindowsOptionalFeature -Online |
-FeatureName <<FEATURE_NAME>> |
Имя компонента | -FeatureName NetFx3 |
-All |
Включить зависимости | -All |
-Source <<SOURCE_PATH>> |
Источник нагрузки | -Source <<SOURCE_PATH>> |
# Включить (NetFx3 с источником)
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source <<SOURCE_PATH>>
# Отключить (SMB1)
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
11.2 Capabilities
Get-WindowsCapability
| Опция | Значение | Пример |
|---|---|---|
-Online |
По активной ОС | Get-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
Поддержка шаблонов | Get-WindowsCapability -Online -Name OpenSSH.* |
-Path <<IMAGE_PATH>> |
По офлайн-образу | Get-WindowsCapability -Path <<IMAGE_PATH>> |
# Список (online)
Get-WindowsCapability -Online
# Конкретная capability
Get-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
Add-/Remove-WindowsCapability
| Опция | Значение | Пример |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Цель | Add-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
Имя capability | -Name OpenSSH.Client~~~~0.0.1.0 |
-Source <<SOURCE_PATH>> |
Источник FoD | -Source <<SOURCE_PATH>> |
# Добавить (online, при необходимости укажите источник)
Add-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
# Удалить
Remove-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
11.3 Пакеты (обновления и языки)
Get-WindowsPackage
| Опция | Значение | Пример |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Цель | Get-WindowsPackage -Online |
-PackagePath <<PACKAGE_PATH>> |
Сведения о пакете | Get-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
# Установленные пакеты (online)
Get-WindowsPackage -Online
Add-WindowsPackage
| Опция | Значение | Пример |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Цель | Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
-PackagePath <<PACKAGE_PATH>> |
Предпочтительно .cab (также .msu) |
# Интеграция обновления (online)
Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>>
# Языковой пакет (offline)
Add-WindowsPackage -Path <<IMAGE_PATH>> -PackagePath <<LANG_PACK>>
11.4 Драйверы
Get-WindowsDriver
| Опция | Значение | Пример |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Цель | Get-WindowsDriver -Path <<IMAGE_PATH>> |
-All |
Показать все драйверы | -All |
# Список драйверов офлайн-образа
Get-WindowsDriver -Path <<IMAGE_PATH>> -All
Add-/Remove-WindowsDriver
| Опция | Значение | Пример |
|---|---|---|
-Path <<IMAGE_PATH>> |
Образ-цель | Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse |
-Driver <<DRIVER_DIR>> |
Каталог INF | |
-Recurse |
Включить подкаталоги | |
-Driver <<oem*.inf>> (Remove) |
Удаляемый INF | Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf |
# Добавление (offline)
Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse
# Удаление (offline)
Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf
Важно: у
Add-/Remove-WindowsDriverнет варианта-Online; практическое применение — офлайн.
11.5 Сведения и монтирование образов
Get-WindowsImage
| Опция | Значение | Пример |
|---|---|---|
-ImagePath <<WIM_PATH>> |
Путь к WIM/ESD | Get-WindowsImage -ImagePath <<WIM_PATH>> |
-Index <<INDEX>> |
Конкретный индекс | -Index <<INDEX>> |
# Все индексы в install.wim
Get-WindowsImage -ImagePath <<WIM_PATH>>
Mount-/Dismount-WindowsImage
| Опция | Значение |
|---|---|
-ImagePath <<WIM_PATH>> |
Входной WIM |
-Index <<INDEX>> |
Индекс для монтирования |
-Path <<MOUNT_DIR>> |
Точка монтирования |
-ReadOnly |
Только чтение |
-ScratchDirectory <<SCRATCH_DIR>> |
Рабочий каталог |
-Save (Dismount) |
Сохранить изменения |
-Discard (Dismount) |
Отменить изменения |
# Монтирование
Mount-WindowsImage -ImagePath <<WIM_PATH>> -Index <<INDEX>> -Path <<MOUNT_DIR>>
# Сохранить и размонтировать
Dismount-WindowsImage -Path <<MOUNT_DIR>> -Save
Итоги
- DISM — низкоуровневое управление компонентами ОС, WIM, обновлениями и драйверами.
- PowerShell (API DISM) — те же возможности с упором на скриптование и автоматизацию.
- Capabilities (FoD) — функции по требованию (OpenSSH, RSAT, языковые пакеты).
