Windows-functies en -images beheren met DISM en PowerShell

Overzicht

Dit artikel zet DISM (Deployment Image Servicing and Management) naast de PowerShell-cmdlets (wrappers rond de DISM-API) en ordent veelgebruikte beheertaken met voorbeelden, opties en gedrag.

Notatie van variabelen

Variabele Voorbeeld Opmerking
<<IMAGE_PATH>> C:\mount of E:\Windows Pad voor /Image: naar een offline Windows (gemounte map of Windows-map op andere schijf)
<<FEATURE_NAME>> NetFx3 Naam van Windows-feature
<<CAPABILITY_NAME>> OpenSSH.Client~~~~0.0.1.0 OS-uitbreiding (FoD: Features on Demand)
<<WIM_PATH>> D:\sources\install.wim WIM/ESD-image
<<INDEX>> 1 Image-index
<<MOUNT_DIR>> C:\mount Mountdoel
<<DRIVER_DIR>> D:\drivers Map met INF-drivers
<<PACKAGE_PATH>> C:\Updates\kb5005565.cab Updatepakket
<<LANG_PACK>> C:\LP\ja-jp\lp.cab Taalpakket-CAB
<<SOURCE_PATH>> D:\sources\sxs Bronpad (bijv. voor NetFx3)
<<APPLY_DIR>> C:\ Doelmap voor toepassen
<<SCRATCH_DIR>> C:\Temp\Scratch Werkmap
<<LOG_PATH>> C:\Temp\dism.log Logbestand

Vrijwel alle commando’s ondersteunen /ScratchDir:<<SCRATCH_DIR>> en /LogPath:<<LOG_PATH>>.


Step 1: Doel selecteren (/Online vs. /Image)

Optie Betekenis Voorbeeld
/Online Het actieve Windows dism /Online /Cleanup-Image /CheckHealth
/Image:<<IMAGE_PATH>> Offline-Windows of gemounte image dism /Image:C:\mount /Add-Driver /Driver:D:\drivers /Recurse

Step 2: Features opvragen (/Get-Features, /Get-FeatureInfo)

Kern

Lijst en status (Enabled / Disabled / DisabledWithPayloadRemoved) van installeerbare features.

Belangrijkste opties

Optie Betekenis Voorbeeld
/Online Tegen draaiend OS dism /Online /Get-Features
/Image:<<IMAGE_PATH>> Tegen offline image dism /Image:C:\mount /Get-Features
/Get-Features Lijst tonen dism /Online /Get-Features /Format:Table
/Get-FeatureInfo Details van een feature dism /Online /Get-FeatureInfo /FeatureName:NetFx3
/FeatureName:<<FEATURE_NAME>> Doelfeature NetFx3
/Format:Table Tabelweergave dism /Online /Get-Features /Format:Table

Voorbeelden

# Alle features met status
dism /Online /Get-Features /Format:Table

# Detail van NetFx3
dism /Online /Get-FeatureInfo /FeatureName:NetFx3

Bij DisabledWithPayloadRemoved is een /Source vereist.


Step 3: Features in-/uitschakelen (/Enable-Feature, /Disable-Feature)

Kern

Windows-features zoals .NET Framework 3.5 of SMB 1.0 beheren.

Belangrijkste opties

Optie Betekenis Voorbeeld
/Online Actief OS dism /Online /Enable-Feature /FeatureName:NetFx3
/FeatureName:<<FEATURE_NAME>> Doelfeature NetFx3
/All Afhankelijkheden meepakken
/Source:<<SOURCE_PATH>> Bron voor verwijderde payload dism /Online /Enable-Feature /FeatureName:NetFx3 /Source:D:\sources\sxs
/LimitAccess Geen Windows Update/WSUS
/Enable-Feature Inschakelen dism /Online /Enable-Feature /FeatureName:SMB1Protocol
/Disable-Feature Uitschakelen dism /Online /Disable-Feature /FeatureName:SMB1Protocol
/LogPath:<<LOG_PATH>> Logpad

Voorbeelden

# .NET Framework 3.5 met lokale bron, zonder internet
dism /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:<<SOURCE_PATH>> /LogPath:<<LOG_PATH>>

# SMB1 uitschakelen (hardening)
dism /Online /Disable-Feature /FeatureName:SMB1Protocol /LogPath:<<LOG_PATH>>

Step 4: Capabilities opvragen (/Get-Capabilities, /Get-CapabilityInfo)

Kern

FoD-componenten (o.a. RSAT, OpenSSH.Client, Language.Basic) en hun status.

Belangrijkste opties

Optie Betekenis Voorbeeld
/Online Tegen actief OS dism /Online /Get-Capabilities
/Image:<<IMAGE_PATH>> Tegen offline image dism /Image:C:\mount /Get-Capabilities
/Get-Capabilities Lijst met uitbreidingen dism /Online /Get-Capabilities /Format:Table
/Get-CapabilityInfo Detail van één capability dism /Online /Get-CapabilityInfo /CapabilityName:OpenSSH.Client~~~~0.0.1.0
/Format:Table Tabelweergave dism /Online /Get-Capabilities /Format:Table

Voorbeelden

# Lijst
dism /Online /Get-Capabilities /Format:Table

# Detail
dism /Online /Get-CapabilityInfo /CapabilityName:<<CAPABILITY_NAME>>

Capabilities kunnen via Windows Update, WSUS of ISO/share worden toegevoegd.


Step 5: Capabilities toevoegen/verwijderen (/Add-Capability, /Remove-Capability)

Kern

FoD-componenten zoals OpenSSH of RSAT installeren of verwijderen.

Belangrijkste opties

Optie Betekenis Voorbeeld
/Online Actief OS dism /Online /Add-Capability
/CapabilityName:<<CAPABILITY_NAME>> Doelcapability OpenSSH.Client~~~~0.0.1.0
/Source:<<SOURCE_PATH>> FoD-ISO of share dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0 /Source:D:\ /LimitAccess
/LimitAccess Alleen opgegeven bron
/LogPath:<<LOG_PATH>> Logpad

Voorbeelden

# OpenSSH.Client toevoegen
dism /Online /Add-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>

# Onnodige RSAT-tool weghalen
dism /Online /Remove-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>

Step 6: Component store controleren/repareren (/Cleanup-Image)

Kern

WinSxS-integriteit controleren, repareren en ruimte optimaliseren.

Belangrijkste opties

Optie Betekenis Voorbeeld
/Online Actief OS dism /Online /Cleanup-Image /CheckHealth
/CheckHealth Snelle integriteitscheck
/ScanHealth Diepe scan
/RestoreHealth Reparatie uitvoeren dism /Online /Cleanup-Image /RestoreHealth
/Source:<<SOURCE_PATH>> Bronpad voor herstel
/LimitAccess Zonder Windows Update
/StartComponentCleanup Oude updates opschonen
/ResetBase Basis vastzetten (geen rollback)
/AnalyzeComponentStore Grootteanalyse

Voorbeelden

# Snelcheck
dism /Online /Cleanup-Image /CheckHealth

# Dieptescan
dism /Online /Cleanup-Image /ScanHealth

# Repareren met bron
dism /Online /Cleanup-Image /RestoreHealth /Source:<<SOURCE_PATH>> /LimitAccess /LogPath:<<LOG_PATH>>

# Opschonen + basis vastzetten
dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase /LogPath:<<LOG_PATH>>

Step 7: Image-informatie tonen (/Get-ImageInfo)

Belangrijkste opties

Optie Betekenis Voorbeeld
/Get-ImageInfo Info over WIM/ESD dism /Get-ImageInfo /ImageFile:install.wim
/ImageFile:<<WIM_PATH>> Doelbestand
/Index:<<INDEX>> Doelindex
/LogPath:<<LOG_PATH>> Logpad

Voorbeeld

# Editions en indices controleren
dism /Get-ImageInfo /ImageFile:<<WIM_PATH>> /LogPath:<<LOG_PATH>>

Step 8: Offline image mounten en loskoppelen

Belangrijkste opties

Optie Betekenis Voorbeeld
/Mount-Wim WIM mounten
/WimFile:<<WIM_PATH>> Bron-WIM
/Index:<<INDEX>> Doelindex
/MountDir:<<MOUNT_DIR>> Mountpad
/ReadOnly Alleen-lezen mount
/Get-MountedWimInfo Huidige mountstatus
/Unmount-Wim Ontkoppelen
/Commit Wijzigingen opslaan
/Discard Wijzigingen verwerpen

Voorbeelden

# Mounten
dism /Mount-Wim /WimFile:<<WIM_PATH>> /Index:<<INDEX>> /MountDir:<<MOUNT_DIR>>

# Status
dism /Get-MountedWimInfo

# Opslaan en ontkoppelen
dism /Unmount-Wim /MountDir:<<MOUNT_DIR>> /Commit

Step 9: Drivers, pakketten en taalpakketten integreren

Belangrijkste opties

Optie Betekenis Voorbeeld
/Online Tegen actief OS
/Image:<<MOUNT_DIR>> Tegen offline image
/Add-Driver Driver toevoegen
/Driver:<<DRIVER_DIR>> Map met INF’s
/Recurse Inclusief submappen
/Add-Package Update-/taalpakket integreren
/PackagePath:<<PACKAGE_PATH>> Pad naar pakket
/Set-AllIntl:ja-JP Locale instellen

Opmerkingen:

  • /Add-Driver is alleen offline.
  • /Add-Package en /Set-AllIntl werken online en offline.

Voorbeelden

# Driverintegratie
dism /Image:<<MOUNT_DIR>> /Add-Driver /Driver:<<DRIVER_DIR>> /Recurse

# Update integreren
dism /Image:<<MOUNT_DIR>> /Add-Package /PackagePath:<<PACKAGE_PATH>>

# Taalpakket + locale
dism /Image:<<MOUNT_DIR>> /Add-Package /PackagePath:<<LANG_PACK>>
dism /Image:<<MOUNT_DIR>> /Set-AllIntl:ja-JP

Step 10: Image capturen, exporteren, toepassen

Belangrijkste opties

Optie Betekenis Voorbeeld
/Capture-Image Map als WIM vastleggen
/ImageFile:<<WIM_PATH>> Doel-WIM
/CaptureDir:<<APPLY_DIR>> Brondirectory
/Name:"<Naam>" Imagenaam
/Export-Image WIM (her)exporteren/compacten
/Apply-Image WIM toepassen
/Compress:max Maximale compressie
/ApplyDir:<<APPLY_DIR>> Doelmap

Voorbeelden

# Capture
dism /Capture-Image /ImageFile:D:\Custom.wim /CaptureDir:<<APPLY_DIR>> /Name:"Custom Image"

# Compact exporteren
dism /Export-Image /SourceImageFile:<<WIM_PATH>> /SourceIndex:<<INDEX>> /DestinationImageFile:D:\install_compressed.wim /Compress:max

# Toepassen
dism /Apply-Image /ImageFile:<<WIM_PATH>> /Index:<<INDEX>> /ApplyDir:<<APPLY_DIR>>

Step 11: PowerShell-equivalenten

Mapping

Domein DISM PowerShell Doel
Features opvragen /Get-Features, /Get-FeatureInfo Get-WindowsOptionalFeature Lijst/details
Features aan/uit /Enable-Feature, /Disable-Feature Enable-WindowsOptionalFeature, Disable-WindowsOptionalFeature In-/uitschakelen
Capabilities opvragen /Get-Capabilities, /Get-CapabilityInfo Get-WindowsCapability Lijst/details
Capabilities add/remove /Add-Capability, /Remove-Capability Add-WindowsCapability, Remove-WindowsCapability FoD beheren
Pakketten opvragen/toevoegen /Get-Packages, /Add-Package Get-WindowsPackage, Add-WindowsPackage Updates/LP integreren
Drivers lijst/integr/verwijder /Get-Drivers, /Add-Driver, /Remove-Driver Get-WindowsDriver, Add-WindowsDriver, Remove-WindowsDriver Vooral offline
Imageinfo/mount /Get-ImageInfo, /Mount-Wim, /Unmount-Wim Get-WindowsImage, Mount-WindowsImage, Dismount-WindowsImage WIM-beheer

11.1 Features

Get-WindowsOptionalFeature

Optie Betekenis Voorbeeld
-Online Tegen actief OS Get-WindowsOptionalFeature -Online -FeatureName <<FEATURE_NAME>>
-Path <<IMAGE_PATH>> Tegen offline image Get-WindowsOptionalFeature -Path <<IMAGE_PATH>>
-FeatureName <<FEATURE_NAME>> Enkel feature -FeatureName NetFx3
# Alle features (online)
Get-WindowsOptionalFeature -Online

# Enkel feature (offline)
Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> -FeatureName <<FEATURE_NAME>>

Enable-/Disable-WindowsOptionalFeature

Optie Betekenis Voorbeeld
-Online / -Path <<IMAGE_PATH>> Doel kiezen Enable-WindowsOptionalFeature -Online
-FeatureName <<FEATURE_NAME>> Feature -FeatureName NetFx3
-All Afhankelijkheden -All
-Source <<SOURCE_PATH>> Bron payload -Source <<SOURCE_PATH>>
# Inschakelen (NetFx3 met bron)
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source <<SOURCE_PATH>>

# Uitschakelen (SMB1)
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

11.2 Capabilities

Get-WindowsCapability

Optie Betekenis Voorbeeld
-Online Actief OS Get-WindowsCapability -Online
-Name <<CAPABILITY_NAME>> Wildcards toegestaan Get-WindowsCapability -Online -Name OpenSSH.*
-Path <<IMAGE_PATH>> Offline image Get-WindowsCapability -Path <<IMAGE_PATH>>
# Lijst (online)
Get-WindowsCapability -Online

# Enkel capability
Get-WindowsCapability -Online -Name <<CAPABILITY_NAME>>

Add-/Remove-WindowsCapability

Optie Betekenis Voorbeeld
-Online / -Path <<IMAGE_PATH>> Doel Add-WindowsCapability -Online
-Name <<CAPABILITY_NAME>> Capability -Name OpenSSH.Client~~~~0.0.1.0
-Source <<SOURCE_PATH>> FoD-bron -Source <<SOURCE_PATH>>
# Toevoegen (online, bron indien nodig)
Add-WindowsCapability -Online -Name <<CAPABILITY_NAME>>

# Verwijderen
Remove-WindowsCapability -Online -Name <<CAPABILITY_NAME>>

11.3 Pakketten (updates/taalpakketten)

Get-WindowsPackage

Optie Betekenis Voorbeeld
-Online / -Path <<IMAGE_PATH>> Doel Get-WindowsPackage -Online
-PackagePath <<PACKAGE_PATH>> Pakketdetails Get-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>>
# Geïnstalleerde pakketten (online)
Get-WindowsPackage -Online

Add-WindowsPackage

Optie Betekenis Voorbeeld
-Online / -Path <<IMAGE_PATH>> Doel Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>>
-PackagePath <<PACKAGE_PATH>> .cab aanbevolen (ook .msu)
# Update (online)
Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>>

# Taalpakket (offline)
Add-WindowsPackage -Path <<IMAGE_PATH>> -PackagePath <<LANG_PACK>>

11.4 Drivers

Get-WindowsDriver

Optie Betekenis Voorbeeld
-Online / -Path <<IMAGE_PATH>> Doel Get-WindowsDriver -Path <<IMAGE_PATH>>
-All Alle drivers tonen -All
# Driverlijst van offline image
Get-WindowsDriver -Path <<IMAGE_PATH>> -All

Add-/Remove-WindowsDriver

Optie Betekenis Voorbeeld
-Path <<IMAGE_PATH>> Doelimage Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse
-Driver <<DRIVER_DIR>> INF-map
-Recurse Inclusief submappen
-Driver <<oem*.inf>> (Remove) Doel-INF Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf
# Toevoegen (offline)
Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse

# Verwijderen (offline)
Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf

Belangrijk: Add-/Remove-WindowsDriver hebben geen -Online-schakelaar; driverbeheer met deze cmdlets is in de praktijk offline.


11.5 Image-informatie & mount

Get-WindowsImage

Optie Betekenis Voorbeeld
-ImagePath <<WIM_PATH>> WIM/ESD Get-WindowsImage -ImagePath <<WIM_PATH>>
-Index <<INDEX>> Enkel image -Index <<INDEX>>
# Alle indices van install.wim
Get-WindowsImage -ImagePath <<WIM_PATH>>

Mount-/Dismount-WindowsImage

Optie Betekenis
-ImagePath <<WIM_PATH>> Invoer-WIM
-Index <<INDEX>> Doelindex
-Path <<MOUNT_DIR>> Mountpad
-ReadOnly Alleen-lezen
-ScratchDirectory <<SCRATCH_DIR>> Werkmap
-Save (Dismount) Wijzigingen opslaan
-Discard (Dismount) Wijzigingen verwerpen
# Mount
Mount-WindowsImage -ImagePath <<WIM_PATH>> -Index <<INDEX>> -Path <<MOUNT_DIR>>

# Opslaan en ontmounten
Dismount-WindowsImage -Path <<MOUNT_DIR>> -Save

Samenvatting

  • DISM: laag-niveaubeheer voor OS-componenten, WIM, updates en drivers.
  • PowerShell (DISM-API): dezelfde functies, script- en automatiseringsvriendelijk.
  • Capabilities (FoD): on-demand features zoals OpenSSH, RSAT en taalpakketten.