- Vue d’ensemble
- Conventions de variables
- Étape 1 : Ciblage (/Online ou /Image)
- Étape 2 : Inspection des fonctionnalités (/Get-Features, /Get-FeatureInfo)
- Étape 3 : Activer/Désactiver des fonctionnalités (/Enable-Feature, /Disable-Feature)
- Étape 4 : Inspection des Capabilities (/Get-Capabilities, /Get-CapabilityInfo)
- Étape 5 : Ajouter/Supprimer des Capabilities (/Add-Capability, /Remove-Capability)
- Étape 6 : Réparation de l’image et magasin de composants (/Cleanup-Image)
- Étape 7 : Informations d’image (/Get-ImageInfo)
- Étape 8 : Monter/Démonter une image hors ligne
- Étape 9 : Intégrer pilotes, paquets et packs linguistiques
- Étape 10 : Capturer, exporter et appliquer des images
- Étape 11 : Équivalents PowerShell
- Synthèse
Vue d’ensemble
Cet article traite en parallèle DISM (Deployment Image Servicing and Management) et PowerShell (l’enveloppe de l’API DISM). Les opérations sont regroupées avec des exemples concrets, les options clés et le comportement attendu.
Conventions de variables
| Variable | Exemple | Remarque |
|---|---|---|
<<IMAGE_PATH>> |
C:\mount ou E:\Windows |
Chemin pour /Image: (Windows hors ligne monté ou dossier Windows d’un autre disque) |
<<FEATURE_NAME>> |
NetFx3 |
Nom de la fonctionnalité Windows |
<<CAPABILITY_NAME>> |
OpenSSH.Client~~~~0.0.1.0 |
Extension OS (FoD : Features on Demand) |
<<WIM_PATH>> |
D:\sources\install.wim |
Fichier image WIM/ESD |
<<INDEX>> |
1 |
Index d’image |
<<MOUNT_DIR>> |
C:\mount |
Point de montage |
<<DRIVER_DIR>> |
D:\drivers |
Dossier contenant des INF |
<<PACKAGE_PATH>> |
C:\Updates\kb5005565.cab |
Fichier de paquet de mise à jour |
<<LANG_PACK>> |
C:\LP\ja-jp\lp.cab |
CAB du pack linguistique |
<<SOURCE_PATH>> |
D:\sources\sxs |
Source (ex. pour NetFx3) |
<<APPLY_DIR>> |
C:\ |
Dossier de destination |
<<SCRATCH_DIR>> |
C:\Temp\Scratch |
Dossier de travail |
<<LOG_PATH>> |
C:\Temp\dism.log |
Chemin du journal |
Presque toutes les commandes acceptent
/ScratchDir:<<SCRATCH_DIR>>et/LogPath:<<LOG_PATH>>.
Étape 1 : Ciblage (/Online ou /Image)
La plupart des commandes DISM exigent de préciser explicitement la cible.
| Option | Signification | Exemple |
|---|---|---|
/Online |
Système Windows en cours d’exécution | dism /Online /Cleanup-Image /CheckHealth |
/Image:<<IMAGE_PATH>> |
Windows hors ligne ou image montée | dism /Image:C:\mount /Add-Driver /Driver:D:\drivers /Recurse |
Étape 2 : Inspection des fonctionnalités (/Get-Features, /Get-FeatureInfo)
Description
Récupère la liste des fonctionnalités et leur état (Enabled / Disabled / DisabledWithPayloadRemoved).
Options clés
| Option | Signification | Exemple |
|---|---|---|
/Online |
Cible le système actif | dism /Online /Get-Features |
/Image:<<IMAGE_PATH>> |
Cible une image hors ligne | dism /Image:C:\mount /Get-Features |
/Get-Features |
Affiche la liste | dism /Online /Get-Features /Format:Table |
/Get-FeatureInfo |
Détail d’une fonctionnalité | dism /Online /Get-FeatureInfo /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
Nom de la fonctionnalité | NetFx3 |
/Format:Table |
Sortie tabulaire | dism /Online /Get-Features /Format:Table |
Exemples
# Lister toutes les fonctionnalités avec leur état
dism /Online /Get-Features /Format:Table
# Détails pour NetFx3
dism /Online /Get-FeatureInfo /FeatureName:NetFx3
DisabledWithPayloadRemovedindique que les fichiers ont été supprimés : fournir/Source.
Étape 3 : Activer/Désactiver des fonctionnalités (/Enable-Feature, /Disable-Feature)
Description
Active ou désactive des fonctionnalités comme .NET Framework 3.5 ou SMB 1.0.
Options clés
| Option | Signification | Exemple |
|---|---|---|
/Online |
Cible le système actif | dism /Online /Enable-Feature /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
Nom de la fonctionnalité | NetFx3 |
/All |
Inclut les dépendances | |
/Source:<<SOURCE_PATH>> |
Source pour payload manquant | dism /Online /Enable-Feature /FeatureName:NetFx3 /Source:D:\sources\sxs |
/LimitAccess |
N’utilise pas WU/WSUS | |
/Enable-Feature |
Active une fonctionnalité | dism /Online /Enable-Feature /FeatureName:SMB1Protocol |
/Disable-Feature |
Désactive une fonctionnalité | dism /Online /Disable-Feature /FeatureName:SMB1Protocol |
/LogPath:<<LOG_PATH>> |
Journal |
Exemples
# Activer .NET Framework 3.5 (NetFx3) depuis la source locale (sans Internet)
dism /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:<<SOURCE_PATH>> /LogPath:<<LOG_PATH>>
# Désactiver SMB1 pour la sécurité
dism /Online /Disable-Feature /FeatureName:SMB1Protocol /LogPath:<<LOG_PATH>>
Étape 4 : Inspection des Capabilities (/Get-Capabilities, /Get-CapabilityInfo)
Description
Liste et état des modules FoD (RSAT, OpenSSH.Client, Language.Basic, etc.).
Options clés
| Option | Signification | Exemple |
|---|---|---|
/Online |
Cible le système actif | dism /Online /Get-Capabilities |
/Image:<<IMAGE_PATH>> |
Cible une image hors ligne | dism /Image:C:\mount /Get-Capabilities |
/Get-Capabilities |
Liste des capabilities | dism /Online /Get-Capabilities /Format:Table |
/Get-CapabilityInfo |
Détail d’une capability | dism /Online /Get-CapabilityInfo /CapabilityName:OpenSSH.Client~~~~0.0.1.0 |
/Format:Table |
Sortie tabulaire | dism /Online /Get-Capabilities /Format:Table |
Exemples
# Liste complète
dism /Online /Get-Capabilities /Format:Table
# Détails d’une capability spécifique
dism /Online /Get-CapabilityInfo /CapabilityName:<<CAPABILITY_NAME>>
Les capabilities peuvent être ajoutées via Windows Update, WSUS, un ISO/partage, etc.
Étape 5 : Ajouter/Supprimer des Capabilities (/Add-Capability, /Remove-Capability)
Description
Ajoute ou supprime des FoD (OpenSSH, RSAT, …).
Options clés
| Option | Signification | Exemple |
|---|---|---|
/Online |
Cible le système actif | dism /Online /Add-Capability |
/CapabilityName:<<CAPABILITY_NAME>> |
Nom de la capability | OpenSSH.Client~~~~0.0.1.0 |
/Source:<<SOURCE_PATH>> |
ISO FoD ou partage | dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0 /Source:D:\ /LimitAccess |
/LimitAccess |
Utilise seulement la source indiquée | |
/LogPath:<<LOG_PATH>> |
Journal |
Exemples
# Ajouter OpenSSH.Client
dism /Online /Add-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
# Supprimer un RSAT inutile
dism /Online /Remove-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
Étape 6 : Réparation de l’image et magasin de composants (/Cleanup-Image)
Description
Détecte/répare la corruption de WinSxS et optimise l’espace.
Options clés
| Option | Signification | Exemple |
|---|---|---|
/Online |
Cible le système actif | dism /Online /Cleanup-Image /CheckHealth |
/CheckHealth |
Vérification rapide | |
/ScanHealth |
Analyse approfondie | |
/RestoreHealth |
Réparation | dism /Online /Cleanup-Image /RestoreHealth |
/Source:<<SOURCE_PATH>> |
Source de réparation | |
/LimitAccess |
Sans Windows Update | |
/StartComponentCleanup |
Nettoyage des anciens correctifs | |
/ResetBase |
Figé (pas de retour arrière) | |
/AnalyzeComponentStore |
Analyse de la taille |
Exemples
# Vérification rapide
dism /Online /Cleanup-Image /CheckHealth
# Analyse complète
dism /Online /Cleanup-Image /ScanHealth
# Réparation avec source explicite
dism /Online /Cleanup-Image /RestoreHealth /Source:<<SOURCE_PATH>> /LimitAccess /LogPath:<<LOG_PATH>>
# Nettoyage et figer la base
dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase /LogPath:<<LOG_PATH>>
Étape 7 : Informations d’image (/Get-ImageInfo)
Options clés
| Option | Signification | Exemple |
|---|---|---|
/Get-ImageInfo |
Infos sur WIM/ESD | dism /Get-ImageInfo /ImageFile:install.wim |
/ImageFile:<<WIM_PATH>> |
WIM cible | |
/Index:<<INDEX>> |
Index à interroger | |
/LogPath:<<LOG_PATH>> |
Journal |
Exemple
# Éditions et index de install.wim
dism /Get-ImageInfo /ImageFile:<<WIM_PATH>> /LogPath:<<LOG_PATH>>
Étape 8 : Monter/Démonter une image hors ligne
Options clés
| Option | Signification | Exemple |
|---|---|---|
/Mount-Wim |
Monter un WIM | |
/WimFile:<<WIM_PATH>> |
Fichier WIM source | |
/Index:<<INDEX>> |
Index à monter | |
/MountDir:<<MOUNT_DIR>> |
Point de montage | |
/ReadOnly |
Montage en lecture seule | |
/Get-MountedWimInfo |
État des montages | |
/Unmount-Wim |
Démonter | |
/Commit |
Sauver les modifications | |
/Discard |
Abandonner les modifications |
Exemples
# Monter pour modification
dism /Mount-Wim /WimFile:<<WIM_PATH>> /Index:<<INDEX>> /MountDir:<<MOUNT_DIR>>
# Vérifier l’état
dism /Get-MountedWimInfo
# Sauver et démonter
dism /Unmount-Wim /MountDir:<<MOUNT_DIR>> /Commit
Étape 9 : Intégrer pilotes, paquets et packs linguistiques
Options clés
| Option | Signification | Exemple |
|---|---|---|
/Online |
Cible le système actif | |
/Image:<<MOUNT_DIR>> |
Cible l’image hors ligne | |
/Add-Driver |
Ajouter des pilotes | |
/Driver:<<DRIVER_DIR>> |
Dossier INF | |
/Recurse |
Inclure les sous-dossiers | |
/Add-Package |
Ajouter un paquet/langue | |
/PackagePath:<<PACKAGE_PATH>> |
Chemin du paquet | |
/Set-AllIntl:ja-JP |
Définir la locale |
Notes :
/Add-Driverest réservé au hors ligne./Add-Packageet/Set-AllIntlfonctionnent en ligne comme hors ligne.
Exemples
# Intégrer des pilotes
dism /Image:<<MOUNT_DIR>> /Add-Driver /Driver:<<DRIVER_DIR>> /Recurse
# Intégrer une mise à jour
dism /Image:<<MOUNT_DIR>> /Add-Package /PackagePath:<<PACKAGE_PATH>>
# Ajouter un pack linguistique et définir la locale
dism /Image:<<MOUNT_DIR>> /Add-Package /PackagePath:<<LANG_PACK>>
dism /Image:<<MOUNT_DIR>> /Set-AllIntl:ja-JP
Étape 10 : Capturer, exporter et appliquer des images
Options clés
| Option | Signification | Exemple |
|---|---|---|
/Capture-Image |
Capturer un dossier vers un WIM | |
/ImageFile:<<WIM_PATH>> |
WIM de sortie | |
/CaptureDir:<<APPLY_DIR>> |
Dossier source | |
/Name:"<nom>" |
Nom de l’image | |
/Export-Image |
Réexporter/compresser un WIM | |
/Apply-Image |
Appliquer un WIM | |
/Compress:max |
Compression maximale | |
/ApplyDir:<<APPLY_DIR>> |
Dossier de destination |
Exemples
# Capturer la configuration courante
dism /Capture-Image /ImageFile:D:\Custom.wim /CaptureDir:<<APPLY_DIR>> /Name:"Custom Image"
# Réexport avec compression maximale
dism /Export-Image /SourceImageFile:<<WIM_PATH>> /SourceIndex:<<INDEX>> /DestinationImageFile:D:\install_compressed.wim /Compress:max
# Appliquer une image
dism /Apply-Image /ImageFile:<<WIM_PATH>> /Index:<<INDEX>> /ApplyDir:<<APPLY_DIR>>
Étape 11 : Équivalents PowerShell
Cartographie rapide
| Domaine | DISM | PowerShell | Objet |
|---|---|---|---|
| Lister les fonctionnalités | /Get-Features, /Get-FeatureInfo |
Get-WindowsOptionalFeature |
Liste/Détails |
| Activer/Désactiver | /Enable-Feature, /Disable-Feature |
Enable-WindowsOptionalFeature, Disable-WindowsOptionalFeature |
Gestion |
| Lister les capabilities | /Get-Capabilities, /Get-CapabilityInfo |
Get-WindowsCapability |
Liste/Détails |
| Ajouter/Supprimer capabilities | /Add-Capability, /Remove-Capability |
Add-WindowsCapability, Remove-WindowsCapability |
FoD |
| Paquets : voir/ajouter | /Get-Packages, /Add-Package |
Get-WindowsPackage, Add-WindowsPackage |
Mises à jour/langues |
| Pilotes : voir/ajouter/supprimer | /Get-Drivers, /Add-Driver, /Remove-Driver |
Get-WindowsDriver, Add-WindowsDriver, Remove-WindowsDriver |
Principalement hors ligne |
| Infos/monter WIM | /Get-ImageInfo, /Mount-Wim, /Unmount-Wim |
Get-WindowsImage, Mount-WindowsImage, Dismount-WindowsImage |
Gestion WIM |
11.1 Fonctionnalités (Features)
Get-WindowsOptionalFeature
| Option | Signification | Exemple |
|---|---|---|
-Online |
Cible le système actif | Get-WindowsOptionalFeature -Online -FeatureName <<FEATURE_NAME>> |
-Path <<IMAGE_PATH>> |
Cible l’image hors ligne | Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> |
-FeatureName <<FEATURE_NAME>> |
Détail ciblé | -FeatureName NetFx3 |
# Toutes les fonctionnalités (online)
Get-WindowsOptionalFeature -Online
# Détails (offline)
Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> -FeatureName <<FEATURE_NAME>>
Enable-/Disable-WindowsOptionalFeature
| Option | Signification | Exemple |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Choix de la cible | Enable-WindowsOptionalFeature -Online |
-FeatureName <<FEATURE_NAME>> |
Nom | -FeatureName NetFx3 |
-All |
Inclut dépendances | -All |
-Source <<SOURCE_PATH>> |
Source d’installation | -Source <<SOURCE_PATH>> |
# Activer (NetFx3 avec source)
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source <<SOURCE_PATH>>
# Désactiver (SMB1)
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
11.2 Capabilities
Get-WindowsCapability
| Option | Signification | Exemple |
|---|---|---|
-Online |
Cible le système actif | Get-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
Jokers possibles | Get-WindowsCapability -Online -Name OpenSSH.* |
-Path <<IMAGE_PATH>> |
Cible l’image hors ligne | Get-WindowsCapability -Path <<IMAGE_PATH>> |
# Liste (online)
Get-WindowsCapability -Online
# Ciblé
Get-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
Add-/Remove-WindowsCapability
| Option | Signification | Exemple |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Cible | Add-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
Nom | -Name OpenSSH.Client~~~~0.0.1.0 |
-Source <<SOURCE_PATH>> |
Source FoD | -Source <<SOURCE_PATH>> |
# Ajouter (online, source si nécessaire)
Add-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
# Supprimer
Remove-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
11.3 Paquets (mises à jour & langues)
Get-WindowsPackage
| Option | Signification | Exemple |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Cible | Get-WindowsPackage -Online |
-PackagePath <<PACKAGE_PATH>> |
Infos d’un paquet | Get-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
# Paquets installés (online)
Get-WindowsPackage -Online
Add-WindowsPackage
| Option | Signification | Exemple |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Cible | Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
-PackagePath <<PACKAGE_PATH>> |
.cab (recommandé) / .msu |
# Intégrer une mise à jour (online)
Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>>
# Pack linguistique (offline)
Add-WindowsPackage -Path <<IMAGE_PATH>> -PackagePath <<LANG_PACK>>
11.4 Pilotes
Get-WindowsDriver
| Option | Signification | Exemple |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Cible | Get-WindowsDriver -Path <<IMAGE_PATH>> |
-All |
Afficher tous les pilotes | -All |
# Lister les pilotes d’une image hors ligne
Get-WindowsDriver -Path <<IMAGE_PATH>> -All
Add-/Remove-WindowsDriver
| Option | Signification | Exemple |
|---|---|---|
-Path <<IMAGE_PATH>> |
Image cible | Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse |
-Driver <<DRIVER_DIR>> |
Dossier INF | |
-Recurse |
Inclure sous-dossiers | |
-Driver <<oem*.inf>> (Remove) |
INF à supprimer | Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf |
# Ajouter (offline)
Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse
# Supprimer (offline)
Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf
Important :
Add-/Remove-WindowsDrivern’ont pas de paramètre-Online; usage pratique : hors ligne.
11.5 Informations & montage d’images
Get-WindowsImage
| Option | Signification | Exemple |
|---|---|---|
-ImagePath <<WIM_PATH>> |
Chemin WIM/ESD | Get-WindowsImage -ImagePath <<WIM_PATH>> |
-Index <<INDEX>> |
Index ciblé | -Index <<INDEX>> |
# Tous les index de install.wim
Get-WindowsImage -ImagePath <<WIM_PATH>>
Mount-/Dismount-WindowsImage
| Option | Signification |
|---|---|
-ImagePath <<WIM_PATH>> |
Fichier WIM source |
-Index <<INDEX>> |
Index à monter |
-Path <<MOUNT_DIR>> |
Point de montage |
-ReadOnly |
Lecture seule |
-ScratchDirectory <<SCRATCH_DIR>> |
Dossier de travail |
-Save (Dismount) |
Sauver les modifications |
-Discard (Dismount) |
Abandonner les modifications |
# Monter
Mount-WindowsImage -ImagePath <<WIM_PATH>> -Index <<INDEX>> -Path <<MOUNT_DIR>>
# Sauver et démonter
Dismount-WindowsImage -Path <<MOUNT_DIR>> -Save
Synthèse
- DISM : gestion bas niveau des composants OS, WIM, mises à jour et pilotes.
- PowerShell (API DISM) : mêmes capacités avec scriptabilité pour l’inventaire, le choix et l’automatisation.
- Capabilities (FoD) : fonctions à la demande (OpenSSH, RSAT, packs linguistiques).
