Überblick
Dieser Artikel stellt DISM (Deployment Image Servicing and Management) und die PowerShell-Cmdlets (Wrapper um die DISM-API) gegenüber und ordnet typische Aufgaben mit Beispielen, Optionen und Verhalten ein.
Zu den Platzhalter-Variablen
| Variable |
Beispiel |
Hinweis |
<<IMAGE_PATH>> |
C:\mount oder E:\Windows |
Pfad für /Image: auf ein Offline-Windows (gemounteter Ordner oder Windows-Verzeichnis auf anderem Datenträger) |
<<FEATURE_NAME>> |
NetFx3 |
Windows-Feature-Name |
<<CAPABILITY_NAME>> |
OpenSSH.Client~~~~0.0.1.0 |
OS-Erweiterung (FoD: Features on Demand) |
<<WIM_PATH>> |
D:\sources\install.wim |
WIM/ESD-Image |
<<INDEX>> |
1 |
Image-Index |
<<MOUNT_DIR>> |
C:\mount |
Mount-Ziel |
<<DRIVER_DIR>> |
D:\drivers |
Ordner mit INF-Treibern |
<<PACKAGE_PATH>> |
C:\Updates\kb5005565.cab |
Update-Paket |
<<LANG_PACK>> |
C:\LP\ja-jp\lp.cab |
Sprachpaket-CAB |
<<SOURCE_PATH>> |
D:\sources\sxs |
Quellpfad z. B. für NetFx3 |
<<APPLY_DIR>> |
C:\ |
Zielordner zum Entpacken |
<<SCRATCH_DIR>> |
C:\Temp\Scratch |
Arbeitsordner |
<<LOG_PATH>> |
C:\Temp\dism.log |
Logdatei |
Fast alle Befehle unterstützen /ScratchDir:<<SCRATCH_DIR>> und /LogPath:<<LOG_PATH>>.
Step 1: Ziel festlegen (/Online vs. /Image)
| Option |
Bedeutung |
Beispiel |
/Online |
Das aktuell gestartete Windows |
dism /Online /Cleanup-Image /CheckHealth |
/Image:<<IMAGE_PATH>> |
Offline-Windows oder gemountetes Image |
dism /Image:C:\mount /Add-Driver /Driver:D:\drivers /Recurse |
Step 2: Features abfragen (/Get-Features, /Get-FeatureInfo)
Kernpunkte
Liste und Status (Enabled / Disabled / DisabledWithPayloadRemoved) installierbarer Features ausgeben.
Wichtige Optionen
| Option |
Bedeutung |
Beispiel |
/Online |
Gegen das laufende OS |
dism /Online /Get-Features |
/Image:<<IMAGE_PATH>> |
Gegen Offline-Image |
dism /Image:C:\mount /Get-Features |
/Get-Features |
Featureliste |
dism /Online /Get-Features /Format:Table |
/Get-FeatureInfo |
Detailinfos zu einem Feature |
dism /Online /Get-FeatureInfo /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
Ziel-Feature |
NetFx3 |
/Format:Table |
Tabellarische Ausgabe |
dism /Online /Get-Features /Format:Table |
Beispiele
dism /Online /Get-Features /Format:Table
dism /Online /Get-FeatureInfo /FeatureName:NetFx3
DisabledWithPayloadRemoved erfordert einen /Source-Pfad.
Step 3: Features aktivieren/deaktivieren (/Enable-Feature, /Disable-Feature)
Kernpunkte
Windows-Features wie .NET Framework 3.5 oder SMB 1.0 ein-/ausschalten.
Wichtige Optionen
| Option |
Bedeutung |
Beispiel |
/Online |
Laufendes OS |
dism /Online /Enable-Feature /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
Ziel-Feature |
NetFx3 |
/All |
Abhängigkeiten mit aktivieren |
|
/Source:<<SOURCE_PATH>> |
Quelle für entfernte Payloads |
dism /Online /Enable-Feature /FeatureName:NetFx3 /Source:D:\sources\sxs |
/LimitAccess |
Kein Windows Update/WSUS |
|
/Enable-Feature |
Feature aktivieren |
dism /Online /Enable-Feature /FeatureName:SMB1Protocol |
/Disable-Feature |
Feature deaktivieren |
dism /Online /Disable-Feature /FeatureName:SMB1Protocol |
/LogPath:<<LOG_PATH>> |
Logpfad |
|
Beispiele
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: Capabilities abfragen (/Get-Capabilities, /Get-CapabilityInfo)
Kernpunkte
FoD-Komponenten (z. B. RSAT, OpenSSH.Client, Language.Basic) und deren Status anzeigen.
Wichtige Optionen
| Option |
Bedeutung |
Beispiel |
/Online |
Gegen das laufende OS |
dism /Online /Get-Capabilities |
/Image:<<IMAGE_PATH>> |
Gegen Offline-Image |
dism /Image:C:\mount /Get-Capabilities |
/Get-Capabilities |
Liste verfügbarer Capabilities |
dism /Online /Get-Capabilities /Format:Table |
/Get-CapabilityInfo |
Detailinfo zu einer Capability |
dism /Online /Get-CapabilityInfo /CapabilityName:OpenSSH.Client~~~~0.0.1.0 |
/Format:Table |
Tabellarische Ausgabe |
dism /Online /Get-Capabilities /Format:Table |
Beispiele
dism /Online /Get-Capabilities /Format:Table
dism /Online /Get-CapabilityInfo /CapabilityName:<<CAPABILITY_NAME>>
Capabilities lassen sich über Windows Update, WSUS oder ISO/Share hinzufügen.
Step 5: Capabilities hinzufügen/entfernen (/Add-Capability, /Remove-Capability)
Kernpunkte
FoD-Komponenten wie OpenSSH oder RSAT bereitstellen/entfernen.
Wichtige Optionen
| Option |
Bedeutung |
Beispiel |
/Online |
Laufendes OS |
dism /Online /Add-Capability |
/CapabilityName:<<CAPABILITY_NAME>> |
Ziel-Capability |
OpenSSH.Client~~~~0.0.1.0 |
/Source:<<SOURCE_PATH>> |
FoD-ISO oder Share |
dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0 /Source:D:\ /LimitAccess |
/LimitAccess |
Nur angegebene Quelle nutzen |
|
/LogPath:<<LOG_PATH>> |
Logpfad |
|
Beispiele
dism /Online /Add-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
dism /Online /Remove-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
Step 6: Komponentenstore prüfen/reparieren (/Cleanup-Image)
Kernpunkte
Beschädigungen im WinSxS erkennen/reparieren und Größe optimieren.
Wichtige Optionen
| Option |
Bedeutung |
Beispiel |
/Online |
Laufendes OS |
dism /Online /Cleanup-Image /CheckHealth |
/CheckHealth |
Schneller Integritätscheck |
|
/ScanHealth |
Tiefenscan |
|
/RestoreHealth |
Reparatur durchführen |
dism /Online /Cleanup-Image /RestoreHealth |
/Source:<<SOURCE_PATH>> |
Quelle für Offline-Reparatur |
|
/LimitAccess |
Ohne Windows Update |
|
/StartComponentCleanup |
Alte Updates bereinigen |
|
/ResetBase |
Rollback ausschließen (Basis neu setzen) |
|
/AnalyzeComponentStore |
Größenanalyse |
|
Beispiele
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: Image-Infos anzeigen (/Get-ImageInfo)
Wichtige Optionen
| Option |
Bedeutung |
Beispiel |
/Get-ImageInfo |
Infos zu WIM/ESD |
dism /Get-ImageInfo /ImageFile:install.wim |
/ImageFile:<<WIM_PATH>> |
Zieldatei |
|
/Index:<<INDEX>> |
Ziel-Index |
|
/LogPath:<<LOG_PATH>> |
Logpfad |
|
Beispiel
dism /Get-ImageInfo /ImageFile:<<WIM_PATH>> /LogPath:<<LOG_PATH>>
Step 8: Image mounten/dismounten
Wichtige Optionen
| Option |
Bedeutung |
Beispiel |
/Mount-Wim |
WIM mounten |
|
/WimFile:<<WIM_PATH>> |
Quell-WIM |
|
/Index:<<INDEX>> |
Ziel-Index |
|
/MountDir:<<MOUNT_DIR>> |
Mount-Pfad |
|
/ReadOnly |
Read-Only |
|
/Get-MountedWimInfo |
Mount-Status anzeigen |
|
/Unmount-Wim |
Dismounten |
|
/Commit |
Änderungen speichern |
|
/Discard |
Änderungen verwerfen |
|
Beispiele
dism /Mount-Wim /WimFile:<<WIM_PATH>> /Index:<<INDEX>> /MountDir:<<MOUNT_DIR>>
dism /Get-MountedWimInfo
dism /Unmount-Wim /MountDir:<<MOUNT_DIR>> /Commit
Step 9: Treiber, Pakete und Sprachpakete integrieren
Wichtige Optionen
| Option |
Bedeutung |
Beispiel |
/Online |
Gegen laufendes OS |
|
/Image:<<MOUNT_DIR>> |
Gegen Offline-Image |
|
/Add-Driver |
Treiber hinzufügen |
|
/Driver:<<DRIVER_DIR>> |
Ordner mit INF |
|
/Recurse |
inkl. Unterordner |
|
/Add-Package |
Paket/Sprachpaket integrieren |
|
/PackagePath:<<PACKAGE_PATH>> |
Paketpfad |
|
/Set-AllIntl:ja-JP |
Locale setzen |
|
Hinweise:
/Add-Driver ist offline-only.
/Add-Package und /Set-AllIntl funktionieren online und offline.
Beispiele
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: Image capturen, exportieren, anwenden
Wichtige Optionen
| Option |
Bedeutung |
Beispiel |
/Capture-Image |
Ordner als WIM erfassen |
|
/ImageFile:<<WIM_PATH>> |
Ziel-WIM |
|
/CaptureDir:<<APPLY_DIR>> |
Quellordner |
|
/Name:"<Name>" |
Imagename |
|
/Export-Image |
WIM neu exportieren/komprimieren |
|
/Apply-Image |
WIM anwenden |
|
/Compress:max |
Maximale Kompression |
|
/ApplyDir:<<APPLY_DIR>> |
Zielordner |
|
Beispiele
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: PowerShell-Äquivalente
Zuordnung
| Bereich |
DISM |
PowerShell |
Zweck |
| Features abfragen |
/Get-Features, /Get-FeatureInfo |
Get-WindowsOptionalFeature |
Liste/Details |
| Features ein/aus |
/Enable-Feature, /Disable-Feature |
Enable-WindowsOptionalFeature, Disable-WindowsOptionalFeature |
Aktivieren/Deaktivieren |
| Capabilities abfragen |
/Get-Capabilities, /Get-CapabilityInfo |
Get-WindowsCapability |
Liste/Details |
| Capabilities add/remove |
/Add-Capability, /Remove-Capability |
Add-WindowsCapability, Remove-WindowsCapability |
FoD bereitstellen/entfernen |
| Pakete abfragen/hinzufügen |
/Get-Packages, /Add-Package |
Get-WindowsPackage, Add-WindowsPackage |
Updates/LP integrieren |
| Treiber auflisten/integr./entf. |
/Get-Drivers, /Add-Driver, /Remove-Driver |
Get-WindowsDriver, Add-WindowsDriver, Remove-WindowsDriver |
Primär offline |
| Imageinfo/Mount |
/Get-ImageInfo, /Mount-Wim, /Unmount-Wim |
Get-WindowsImage, Mount-WindowsImage, Dismount-WindowsImage |
WIM verwalten |
11.1 Features
Get-WindowsOptionalFeature
| Option |
Bedeutung |
Beispiel |
-Online |
Gegen laufendes OS |
Get-WindowsOptionalFeature -Online -FeatureName <<FEATURE_NAME>> |
-Path <<IMAGE_PATH>> |
Gegen Offline-Image |
Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> |
-FeatureName <<FEATURE_NAME>> |
Einzelnes Feature |
-FeatureName NetFx3 |
Get-WindowsOptionalFeature -Online
Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> -FeatureName <<FEATURE_NAME>>
Enable-/Disable-WindowsOptionalFeature
| Option |
Bedeutung |
Beispiel |
-Online / -Path <<IMAGE_PATH>> |
Ziel festlegen |
Enable-WindowsOptionalFeature -Online |
-FeatureName <<FEATURE_NAME>> |
Feature |
-FeatureName NetFx3 |
-All |
Abhängigkeiten einschließen |
-All |
-Source <<SOURCE_PATH>> |
Quelle für Payload |
-Source <<SOURCE_PATH>> |
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source <<SOURCE_PATH>>
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
11.2 Capabilities
Get-WindowsCapability
| Option |
Bedeutung |
Beispiel |
-Online |
Laufendes OS |
Get-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
Wildcards möglich |
Get-WindowsCapability -Online -Name OpenSSH.* |
-Path <<IMAGE_PATH>> |
Offline-Image |
Get-WindowsCapability -Path <<IMAGE_PATH>> |
Get-WindowsCapability -Online
Get-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
Add-/Remove-WindowsCapability
| Option |
Bedeutung |
Beispiel |
-Online / -Path <<IMAGE_PATH>> |
Ziel |
Add-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
Capability |
-Name OpenSSH.Client~~~~0.0.1.0 |
-Source <<SOURCE_PATH>> |
FoD-Quelle |
-Source <<SOURCE_PATH>> |
Add-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
Remove-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
11.3 Pakete (Updates/Sprachpakete)
Get-WindowsPackage
| Option |
Bedeutung |
Beispiel |
-Online / -Path <<IMAGE_PATH>> |
Ziel |
Get-WindowsPackage -Online |
-PackagePath <<PACKAGE_PATH>> |
Paketdetails |
Get-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
Get-WindowsPackage -Online
Add-WindowsPackage
| Option |
Bedeutung |
Beispiel |
-Online / -Path <<IMAGE_PATH>> |
Ziel |
Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
-PackagePath <<PACKAGE_PATH>> |
.cab bevorzugt (auch .msu) |
|
Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>>
Add-WindowsPackage -Path <<IMAGE_PATH>> -PackagePath <<LANG_PACK>>
11.4 Treiber
Get-WindowsDriver
| Option |
Bedeutung |
Beispiel |
-Online / -Path <<IMAGE_PATH>> |
Ziel |
Get-WindowsDriver -Path <<IMAGE_PATH>> |
-All |
Alle Treiber anzeigen |
-All |
Get-WindowsDriver -Path <<IMAGE_PATH>> -All
Add-/Remove-WindowsDriver
| Option |
Bedeutung |
Beispiel |
-Path <<IMAGE_PATH>> |
Zielimage |
Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse |
-Driver <<DRIVER_DIR>> |
INF-Ordner |
|
-Recurse |
inkl. Unterordner |
|
-Driver <<oem*.inf>> (Remove) |
Zu entfernende INF |
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
Wichtig: Add-/Remove-WindowsDriver besitzen keinen -Online-Schalter; Treiberverwaltung per Cmdlet ist primär offline.
11.5 Image-Informationen & Mount
Get-WindowsImage
| Option |
Bedeutung |
Beispiel |
-ImagePath <<WIM_PATH>> |
WIM/ESD |
Get-WindowsImage -ImagePath <<WIM_PATH>> |
-Index <<INDEX>> |
Einzelnes Image |
-Index <<INDEX>> |
Get-WindowsImage -ImagePath <<WIM_PATH>>
Mount-/Dismount-WindowsImage
| Option |
Bedeutung |
-ImagePath <<WIM_PATH>> |
Eingabe-WIM |
-Index <<INDEX>> |
Ziel-Index |
-Path <<MOUNT_DIR>> |
Mount-Pfad |
-ReadOnly |
Read-Only mounten |
-ScratchDirectory <<SCRATCH_DIR>> |
Arbeitsordner |
-Save (Dismount) |
Änderungen speichern |
-Discard (Dismount) |
Änderungen verwerfen |
Mount-WindowsImage -ImagePath <<WIM_PATH>> -Index <<INDEX>> -Path <<MOUNT_DIR>>
Dismount-WindowsImage -Path <<MOUNT_DIR>> -Save
Kurzfazit
- DISM: Niedrige Ebene für OS-Komponenten, WIM, Updates, Treiber.
- PowerShell (DISM-API): Gleiche Funktionen, skript- und automatisierungsfreundlich.
- Capabilities (FoD): On-Demand-Features wie OpenSSH, RSAT, Sprachpakete.