Visão geral
Este artigo coloca lado a lado o DISM (Deployment Image Servicing and Management) e os cmdlets do PowerShell (wrappers sobre a API do DISM), organizando tarefas frequentes com exemplos, opções e comportamento.
Notação de variáveis
| Variável |
Exemplo |
Observação |
<<IMAGE_PATH>> |
C:\mount ou E:\Windows |
Caminho para /Image: apontando a um Windows offline (pasta montada ou diretório Windows em outro disco) |
<<FEATURE_NAME>> |
NetFx3 |
Nome do recurso do Windows |
<<CAPABILITY_NAME>> |
OpenSSH.Client~~~~0.0.1.0 |
Extensão do SO (FoD: Features on Demand) |
<<WIM_PATH>> |
D:\sources\install.wim |
Arquivo WIM/ESD |
<<INDEX>> |
1 |
Índice do image |
<<MOUNT_DIR>> |
C:\mount |
Diretório de montagem |
<<DRIVER_DIR>> |
D:\drivers |
Pasta contendo drivers INF |
<<PACKAGE_PATH>> |
C:\Updates\kb5005565.cab |
Pacote de atualização |
<<LANG_PACK>> |
C:\LP\ja-jp\lp.cab |
CAB de idioma |
<<SOURCE_PATH>> |
D:\sources\sxs |
Fonte (ex.: NetFx3) |
<<APPLY_DIR>> |
C:\ |
Destino de aplicação |
<<SCRATCH_DIR>> |
C:\Temp\Scratch |
Pasta de trabalho |
<<LOG_PATH>> |
C:\Temp\dism.log |
Caminho do log |
Quase todos os comandos aceitam /ScratchDir:<<SCRATCH_DIR>> e /LogPath:<<LOG_PATH>>.
Step 1: Selecionar o alvo (/Online vs. /Image)
| Opção |
Significado |
Exemplo |
/Online |
O Windows em execução |
dism /Online /Cleanup-Image /CheckHealth |
/Image:<<IMAGE_PATH>> |
Windows offline ou image montada |
dism /Image:C:\mount /Add-Driver /Driver:D:\drivers /Recurse |
Step 2: Consultar recursos (/Get-Features, /Get-FeatureInfo)
Essência
Listar recursos instaláveis e seu estado (Enabled / Disabled / DisabledWithPayloadRemoved).
Opções principais
| Opção |
Significado |
Exemplo |
/Online |
Contra o SO ativo |
dism /Online /Get-Features |
/Image:<<IMAGE_PATH>> |
Contra image offline |
dism /Image:C:\mount /Get-Features |
/Get-Features |
Exibir lista |
dism /Online /Get-Features /Format:Table |
/Get-FeatureInfo |
Detalhes de um recurso |
dism /Online /Get-FeatureInfo /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
Recurso alvo |
NetFx3 |
/Format:Table |
Saída tabular |
dism /Online /Get-Features /Format:Table |
Exemplos
dism /Online /Get-Features /Format:Table
dism /Online /Get-FeatureInfo /FeatureName:NetFx3
DisabledWithPayloadRemoved requer fornecer uma fonte via /Source.
Step 3: Ativar/desativar recursos (/Enable-Feature, /Disable-Feature)
Essência
Gerenciar recursos como .NET Framework 3.5 e SMB 1.0.
Opções principais
| Opção |
Significado |
Exemplo |
/Online |
SO ativo |
dism /Online /Enable-Feature /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
Recurso alvo |
NetFx3 |
/All |
Incluir dependências |
|
/Source:<<SOURCE_PATH>> |
Fonte para payload removido |
dism /Online /Enable-Feature /FeatureName:NetFx3 /Source:D:\sources\sxs |
/LimitAccess |
Não usar Windows Update/WSUS |
|
/Enable-Feature |
Ativar |
dism /Online /Enable-Feature /FeatureName:SMB1Protocol |
/Disable-Feature |
Desativar |
dism /Online /Disable-Feature /FeatureName:SMB1Protocol |
/LogPath:<<LOG_PATH>> |
Caminho do log |
|
Exemplos
dism /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:<<SOURCE_PATH>> /LogPath:<<LOG_PATH>>
dism /Online /Disable-Feature /FeatureName:SMB1Protocol /LogPath:<<LOG_PATH>>
Step 4: Consultar capabilities (/Get-Capabilities, /Get-CapabilityInfo)
Essência
Exibir componentes FoD (p.ex., RSAT, OpenSSH.Client, Language.Basic) e seus estados.
Opções principais
| Opção |
Significado |
Exemplo |
/Online |
Contra o SO ativo |
dism /Online /Get-Capabilities |
/Image:<<IMAGE_PATH>> |
Contra image offline |
dism /Image:C:\mount /Get-Capabilities |
/Get-Capabilities |
Lista de capabilities |
dism /Online /Get-Capabilities /Format:Table |
/Get-CapabilityInfo |
Detalhe de uma capability |
dism /Online /Get-CapabilityInfo /CapabilityName:OpenSSH.Client~~~~0.0.1.0 |
/Format:Table |
Saída tabular |
dism /Online /Get-Capabilities /Format:Table |
Exemplos
dism /Online /Get-Capabilities /Format:Table
dism /Online /Get-CapabilityInfo /CapabilityName:<<CAPABILITY_NAME>>
Capabilities podem ser adicionadas via Windows Update, WSUS ou ISO/compartilhamento.
Step 5: Adicionar/remover capabilities (/Add-Capability, /Remove-Capability)
Essência
Instalar/remover componentes FoD como OpenSSH e RSAT.
Opções principais
| Opção |
Significado |
Exemplo |
/Online |
SO ativo |
dism /Online /Add-Capability |
/CapabilityName:<<CAPABILITY_NAME>> |
Capability alvo |
OpenSSH.Client~~~~0.0.1.0 |
/Source:<<SOURCE_PATH>> |
ISO FoD ou compartilhamento |
dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0 /Source:D:\ /LimitAccess |
/LimitAccess |
Usar apenas a fonte indicada |
|
/LogPath:<<LOG_PATH>> |
Caminho do log |
|
Exemplos
dism /Online /Add-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
dism /Online /Remove-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
Step 6: Verificar/reparar o Component Store (/Cleanup-Image)
Essência
Detectar/corrigir corrupção no WinSxS e otimizar espaço.
Opções principais
| Opção |
Significado |
Exemplo |
/Online |
SO ativo |
dism /Online /Cleanup-Image /CheckHealth |
/CheckHealth |
Verificação rápida |
|
/ScanHealth |
Verificação profunda |
|
/RestoreHealth |
Executar reparo |
dism /Online /Cleanup-Image /RestoreHealth |
/Source:<<SOURCE_PATH>> |
Fonte para reparo |
|
/LimitAccess |
Sem Windows Update |
|
/StartComponentCleanup |
Limpar updates antigos |
|
/ResetBase |
Fixar base (sem rollback) |
|
/AnalyzeComponentStore |
Análise de tamanho |
|
Exemplos
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>>
Step 7: Exibir informações do image (/Get-ImageInfo)
Opções principais
| Opção |
Significado |
Exemplo |
/Get-ImageInfo |
Informações de WIM/ESD |
dism /Get-ImageInfo /ImageFile:install.wim |
/ImageFile:<<WIM_PATH>> |
Arquivo alvo |
|
/Index:<<INDEX>> |
Índice alvo |
|
/LogPath:<<LOG_PATH>> |
Caminho do log |
|
Exemplo
dism /Get-ImageInfo /ImageFile:<<WIM_PATH>> /LogPath:<<LOG_PATH>>
Step 8: Montar/desmontar image offline
Opções principais
| Opção |
Significado |
Exemplo |
/Mount-Wim |
Montar WIM |
|
/WimFile:<<WIM_PATH>> |
WIM de origem |
|
/Index:<<INDEX>> |
Índice alvo |
|
/MountDir:<<MOUNT_DIR>> |
Caminho de montagem |
|
/ReadOnly |
Montar somente leitura |
|
/Get-MountedWimInfo |
Status das montagens |
|
/Unmount-Wim |
Desmontar |
|
/Commit |
Salvar alterações |
|
/Discard |
Descartar alterações |
|
Exemplos
dism /Mount-Wim /WimFile:<<WIM_PATH>> /Index:<<INDEX>> /MountDir:<<MOUNT_DIR>>
dism /Get-MountedWimInfo
dism /Unmount-Wim /MountDir:<<MOUNT_DIR>> /Commit
Step 9: Integrar drivers, pacotes e idiomas
Opções principais
| Opção |
Significado |
Exemplo |
/Online |
Contra o SO ativo |
|
/Image:<<MOUNT_DIR>> |
Contra image offline |
|
/Add-Driver |
Adicionar drivers |
|
/Driver:<<DRIVER_DIR>> |
Pasta com INFs |
|
/Recurse |
Incluir subpastas |
|
/Add-Package |
Integrar update/idioma |
|
/PackagePath:<<PACKAGE_PATH>> |
Caminho do pacote |
|
/Set-AllIntl:ja-JP |
Definir locale |
|
Observações:
/Add-Driver é somente offline.
/Add-Package e /Set-AllIntl funcionam online e offline.
Exemplos
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
Step 10: Capturar, exportar e aplicar image
Opções principais
| Opção |
Significado |
Exemplo |
/Capture-Image |
Capturar pasta em um WIM |
|
/ImageFile:<<WIM_PATH>> |
WIM de saída |
|
/CaptureDir:<<APPLY_DIR>> |
Diretório de origem |
|
/Name:"<Nome>" |
Nome do image |
|
/Export-Image |
Reexportar/compactar WIM |
|
/Apply-Image |
Aplicar WIM |
|
/Compress:max |
Compressão máxima |
|
/ApplyDir:<<APPLY_DIR>> |
Destino de aplicação |
|
Exemplos
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>>
Step 11: Equivalentes no PowerShell
Mapeamento
| Área |
DISM |
PowerShell |
Objetivo |
| Consultar recursos |
/Get-Features, /Get-FeatureInfo |
Get-WindowsOptionalFeature |
Lista/detalhes |
| Ativar/desativar recursos |
/Enable-Feature, /Disable-Feature |
Enable-WindowsOptionalFeature, Disable-WindowsOptionalFeature |
Habilitar/desabilitar |
| Consultar capabilities |
/Get-Capabilities, /Get-CapabilityInfo |
Get-WindowsCapability |
Lista/detalhes |
| Adicionar/remover capabilities |
/Add-Capability, /Remove-Capability |
Add-WindowsCapability, Remove-WindowsCapability |
Gerir FoD |
| Consultar/adicionar pacotes |
/Get-Packages, /Add-Package |
Get-WindowsPackage, Add-WindowsPackage |
Integrar updates/idiomas |
| Drivers listar/integrar/remover |
/Get-Drivers, /Add-Driver, /Remove-Driver |
Get-WindowsDriver, Add-WindowsDriver, Remove-WindowsDriver |
Principalmente offline |
| Info/montagem de image |
/Get-ImageInfo, /Mount-Wim, /Unmount-Wim |
Get-WindowsImage, Mount-WindowsImage, Dismount-WindowsImage |
Gerir WIM |
11.1 Recursos (Features)
Get-WindowsOptionalFeature
| Opção |
Significado |
Exemplo |
-Online |
Contra o SO ativo |
Get-WindowsOptionalFeature -Online -FeatureName <<FEATURE_NAME>> |
-Path <<IMAGE_PATH>> |
Contra image offline |
Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> |
-FeatureName <<FEATURE_NAME>> |
Único recurso |
-FeatureName NetFx3 |
Get-WindowsOptionalFeature -Online
Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> -FeatureName <<FEATURE_NAME>>
Enable-/Disable-WindowsOptionalFeature
| Opção |
Significado |
Exemplo |
-Online / -Path <<IMAGE_PATH>> |
Selecionar alvo |
Enable-WindowsOptionalFeature -Online |
-FeatureName <<FEATURE_NAME>> |
Recurso |
-FeatureName NetFx3 |
-All |
Incluir dependências |
-All |
-Source <<SOURCE_PATH>> |
Fonte do payload |
-Source <<SOURCE_PATH>> |
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source <<SOURCE_PATH>>
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
11.2 Capabilities
Get-WindowsCapability
| Opção |
Significado |
Exemplo |
-Online |
SO ativo |
Get-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
Aceita curingas |
Get-WindowsCapability -Online -Name OpenSSH.* |
-Path <<IMAGE_PATH>> |
Image offline |
Get-WindowsCapability -Path <<IMAGE_PATH>> |
Get-WindowsCapability -Online
Get-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
Add-/Remove-WindowsCapability
| Opção |
Significado |
Exemplo |
-Online / -Path <<IMAGE_PATH>> |
Alvo |
Add-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
Capability |
-Name OpenSSH.Client~~~~0.0.1.0 |
-Source <<SOURCE_PATH>> |
Fonte FoD |
-Source <<SOURCE_PATH>> |
Add-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
Remove-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
11.3 Pacotes (updates/idiomas)
Get-WindowsPackage
| Opção |
Significado |
Exemplo |
-Online / -Path <<IMAGE_PATH>> |
Alvo |
Get-WindowsPackage -Online |
-PackagePath <<PACKAGE_PATH>> |
Detalhes do pacote |
Get-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
Get-WindowsPackage -Online
Add-WindowsPackage
| Opção |
Significado |
Exemplo |
-Online / -Path <<IMAGE_PATH>> |
Alvo |
Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
-PackagePath <<PACKAGE_PATH>> |
.cab preferível (também .msu) |
|
Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>>
Add-WindowsPackage -Path <<IMAGE_PATH>> -PackagePath <<LANG_PACK>>
11.4 Drivers
Get-WindowsDriver
| Opção |
Significado |
Exemplo |
-Online / -Path <<IMAGE_PATH>> |
Alvo |
Get-WindowsDriver -Path <<IMAGE_PATH>> |
-All |
Mostrar todos os drivers |
-All |
Get-WindowsDriver -Path <<IMAGE_PATH>> -All
Add-/Remove-WindowsDriver
| Opção |
Significado |
Exemplo |
-Path <<IMAGE_PATH>> |
Image alvo |
Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse |
-Driver <<DRIVER_DIR>> |
Pasta com INF |
|
-Recurse |
Incluir subpastas |
|
-Driver <<oem*.inf>> (Remove) |
INF a remover |
Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf |
Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse
Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf
Importante: Add-/Remove-WindowsDriver não possuem parâmetro -Online; na prática, o gerenciamento por esses cmdlets é offline.
11.5 Informações & montagem de image
Get-WindowsImage
| Opção |
Significado |
Exemplo |
-ImagePath <<WIM_PATH>> |
Caminho de WIM/ESD |
Get-WindowsImage -ImagePath <<WIM_PATH>> |
-Index <<INDEX>> |
Único image |
-Index <<INDEX>> |
Get-WindowsImage -ImagePath <<WIM_PATH>>
Mount-/Dismount-WindowsImage
| Opção |
Significado |
-ImagePath <<WIM_PATH>> |
WIM de entrada |
-Index <<INDEX>> |
Índice alvo |
-Path <<MOUNT_DIR>> |
Caminho de montagem |
-ReadOnly |
Somente leitura |
-ScratchDirectory <<SCRATCH_DIR>> |
Pasta de trabalho |
-Save (Dismount) |
Salvar alterações |
-Discard (Dismount) |
Descartar alterações |
Mount-WindowsImage -ImagePath <<WIM_PATH>> -Index <<INDEX>> -Path <<MOUNT_DIR>>
Dismount-WindowsImage -Path <<MOUNT_DIR>> -Save
Conclusão
- DISM: controle de baixo nível para componentes do SO, WIM, updates e drivers.
- PowerShell (API do DISM): mesmas funções com foco em script e automação.
- Capabilities (FoD): recursos sob demanda como OpenSSH, RSAT e pacotes de idiomas.