Инструмент командной строки DISM (Deployment Image Servicing and Management) и связанный с ним модуль Powershell являются мощными инструментами для манипулирования файлами образа Windows с расширением .wim, файлами виртуальных жестких дисков .vhd, а также для управления функциями и драйверами Windows.
Еще более мощным является возможность обслуживания offline изображений. В прошлом было много утилит, которые использовались, но DISM предназначен для замены PEimg, Intlcfg, ImageX и Package Manager.
Использование DISM
Для начала откройте командную строку и просто введите dism. Первоначальный вывод — это версия и доступные опции, которых много.
В данной статье мы сфокусируемся на том, как использовать DISM для добавления или удаления Windows Features. Давайте рассмотрим, какие функциональные возможности существуют для этого.
Функциональность DISM
Существует четыре основных функции, которые используются функциями управления. Ниже мы рассмотрим каждую из них и выясним, как именно они используются.
- Get-Features
- Get-FeatureInfo
- Enable-Feature
- Disable-Feature
Get-Features
Чтобы понять, какие функции доступны, и текущее состояние, мы используем параметр / Get-Features. Важно отметить, что мы используем / Online для всех команд здесь, поскольку мы работаем в текущей операционной системе, а не в автономном образе.
dism /Online /Get-Features
Вывод всех функций и их текущее состояние отобразятся на экране, когда эта команда будет запущена. Их много, и представление списка по умолчанию может быть нечитабельным. К счастью, есть удобная опция форматирования, которая облегчает анализ выводимых данных.
dism /Online /Get-Features /Format:Table
Теперь, когда мы знаем, какие функции доступны, давайте выберем одну из них для включения.
Get-FeatureInfo
Чтобы узнать больше о какой-то конкретной функции, нам нужно использовать опцию Get-FeatureInfo. Эта команда также требует дополнительного параметра FeatureName, содержащий имя объекта, который нужно запросить. В этом случае мы ищем функцию BITS (Background Intelligent Transfer Service).
dism /online /Get-FeatureInfo /FeatureName:BITS
Есть несколько полезных результатов. В частности, Restart Required и Version properties. Полезно знать, как установка функции повлияет на систему и правильная ли у вас версия. Далее включается функция в системе, для этого мы используем опцию Enable-Feature.
Enable-Feature
Если функция, которую вы хотите включить, имеет источники, уже включенные в операционную систему, и является автономной функцией, такой как BITS, то команда очень проста.
dism /Online /Enable-Feature /FeatureName:BITS
Есть несколько других команд, которые очень полезны.
- Source – /Source:X:\\WindowsSources\\SxS Если источники недоступны для запрашиваемой функции, вы можете указать путь. Это характерно для таких функций, как.NET5.
- LimitAccess – /LimitAccess Если вы хотите, чтобы DISM не запрашивал источники Microsoft Update.
- All — / AllWithout, / All, будет установлена только запрашиваемая функция, использование All позволит также установить все родительские функции. Это иногда может помочь с управлением зависимостями.
Если решено, что использование BITS не является необходимым, нам нужно удалить эту функцию из операционной системы.
Disable-Feature
Disable-Feature нужна чтобы просто удалить функцию, она по сути такая же, как Enable-Feature, но наоборот.
dism /Online /Disable-Feature /FeatureName:BITS
Существует одна дополнительная опция, которая может быть использована /Remove. Она удалит функцию, но не манифест функций. Обычно это используется для освобождения места на образе. По запросу на установку необходимо указать удаленный источник для установки этой функции.
Модуль DISM Powershell
Используя PowerShell, вы можете получить доступ ко многим из тех же функций DISM, но в отличии от DISM — в объектно-ориентированной среде. Карта функций, как показано ниже.
- /Get-Features → Get-WindowsOptionalFeature
- /Get-FeatureInfo → Get-WindowsOptionalFeature -FeatureName
- /Enable-Feature → Enable-WindowsOptionalFeature
- /Disable-Feature → Disable-WindowsOptionalFeature
Возможно, вам придется импортировать модуль DISM, модуль импорта DISM
После загрузки модуля появляется много команд, но мы сосредоточимся на четырех, описанных в этой статье.
Get-WindowsOptionalFeature
Одно отличие состоит в том, что нет параметра Format. Это потому, что вы можете форматировать возвращаемые объекты любым количеством способов с помощью PowerShell. Способ получить аналогичное табличное представление заключается в следующем.
Get-WindowsOptionalFeature -Online | Format-Table -AutoSize
Далее мы хотим узнать больше о существующей функции.
Get-WindowsOptionalFeature -FeatureName
Вы заметите, что используемый командлет такой же, как и раньше, но вместо него используется параметр. Из-за того, как PowerShell обычно структурирован, это предпочтительный метод. Для этого мы передадим функцию, о которой мы хотим узнать больше.
Get-WindowsOptionalFeature -Online -FeatureName BITS
Как вы можете видеть, та же информация, которая была возвращена DISM, содержится в объекте, возвращаемом PowerShell. Теперь, когда мы добавили нашу функцию, давайте включим эту ее.
Enable-WindowsOptionalFeature
Есть несколько способов использовать эту команду. Наиболее аналогичным средством командной строки DISM является следующее.
Enable-WindowsOptionalFeature -Online -FeatureName BITS
Если у вас есть ряд функций или вы знаете, какую хотите, вы можете использовать конвейер для их передачи. Ниже приведены два примера того, как это сделать.
Наконец, нам нужно отключить BITS, так как они больше не нужны.
Disable-WindowsOptionalFeature
Как и командлету enable, нам просто нужно передать имя функции для отключения.
Disable-WindowsOptionalFeature -Online -FeatureName BITS
Заключение
Используете ли вы DISM из командной строки или PowerShell, для управления функциями Windows доступно множество функций. DISM можно использовать не только в работающей системе, но и при наличии автономных образов, а также для управления ими!