PowerShell – Mount/Dismount WIM image

Bonjour, Voici les commandes CMD et en Powershell pour travailler les images Windows.

Prérequis

Pour travailler les Images Windows, que ce soit les install.wim ou directement les iso vous avez besoin de l’ADK, vous trouverez l’article Microsoft ICI pour les versions et les téléchargements.


Travail en CMD

Nous allons travailler dans le CMD fourni par l’ADK. A lancer en administrateur.

Nous allons commencer par monter l’image install.wim

DISM /Mount-image /imagefile:G:\OS\fr-fr\sources\install.wim /Index:5 /MountDir:G:\Wim-Work\Mount

Montage de l’image « install.wim » qui se trouve dans « G:\OS\fr-fr\sources\ » en cours dans le dossier « G:\Wim-Work\Mount »


Montage réussi:

Vérifions quels packages Microsoft sont déjà installés:

DISM /image:G:\Wim-Work\Mount /Get-ProvisionedAppxPackages

Supprimons le package « OfficeHub » pour l’exmple

DISM /image:G:\Wim-Work\Mount /Remove-ProvisionedAppxPackage /PackageName:Microsoft.MicrosoftOfficeHub_18.1903.1152.0_neutral_~_8wekyb3d8bbwe

DISM /unmount-Wim /MountDir:G:\Wim-Work\Mount /Commit

Démonter l’image sans apporter de modification.

DISM /unmount-Wim /MountDir:G:\Wim-Work\Mount /Discard
Vous pouvez voir que la commande démonte l’image sans passer par l’enregistrement.

Voici donc toutes les commandes utiles en CMD.


Travail en PowerShell

Ici j’ai utilisé une image WIM d’un Windows 10 version 21H1.

ATTENTION les commandes doivent être faire en administrateur ! J’utilise le Windows PowerShell ISE fourni par Windows.

Pour voir quelles versions versions sont disponibles dans la WIM selectionnée

Get-WindowsImage -ImagePath "G:\OS\fr-fr\sources\install.wim" | Select-Object ImageIndex, ImageName
Dans l’image que j’ai selectionnée, je trouve toutes ces versions.

Montage de l’image Wim qui se trouve dans: « G:\sources\install.wim » (ici je choisi index 5 qui correspond à Windows 10 pro)

Mount-WindowsImage -ImagePath "G:\OS\fr-fr\sources\install.wim" -Index 5 -Path "G:\Wim-Work\Mount" 
L’image est en train de se monter (j’ai cette image car j’utilise Windows Powershell ISE)
Une fois l’image montée, Powershell nous retourne ce résultat.

Vérifions les packages Windows qui sont déjà installées dans la WIM

Get-AppxProvisionedPackage -Path "G:\Wim-Work\Mount" | Select-Object PackageName

Désinstaller un packages Windows, pour l’exemple nous allons retiré Skype

Remove-AppxProvisionedPackage -Path "G:\Wim-Work\Mount" -PackageName "Microsoft.SkypeApp_14.53.77.0_neutral_~_kzf8qxf38zg5c" -Verbose

Vérifier si le Framwork 3.5 est installé (s’il n’est pas installé, Powershell ne retourne aucune valeur)

Get-WindowsOptionalFeature -FeatureName "<em>NetFx3</em>" -Path $Txt_MountFolder.Text

Activation du Framework 3.5

Enable-WindowsOptionalFeature -Path $Txt_MountFolder.Text -FeatureName "NetFx3" -All -LimitAccess -Source ($Txt_MountFolder.Text+"\sources\sxs")

Démonter l’image

Dismount-WindowsImage -Path "G:\Wim-Work\Mount" -Save -LogPath "G:\Wim-Work\Log" -ScratchDirectory "G:\Wim-Work\Scratch" -Verbose

Démontage de l’image sans prendre en compte les modifications apportées.

Dismount-WindowsImage -Path $Txt_MountFolder.Text -Discard -LogPath "G:\Wim-Work\Log" -ScratchDirectory "G:\Wim-Work\Scratch" -Verbose