In-Place Upgrade avec une WIM customisé ?

Un des scénarios de passage à Windows 10 est l'In-Place Upgrade. Ce processus de mise à niveau sur place est conçu pour être extrêmement fiable, et offre la possibilité de revenir automatiquement au système d’exploitation précédent en cas de problème lors du processus de déploiement. Ce scénario peut être utilisé pour le passage de Windows 7, 8, 8.1 à Windows 10 et aussi pour le passage d'une build a une autre (Ex : 1607 à 1703).

Faire un In-Place Upgrade avec une image WIM customisée (Sysprep et Capture) n'est pas supporté, mais on peut faire quelques ajustements à l'image WIM de l'ISO (Install.wim) afin d'ajouter une mise à jour, un pack de langue ou pour supprimer des applications built-in par exemple.

En ce qui concerne le passage d'une build à une autre de Windows 10 on peut utiliser un .ESD, ce fichier est une version compressée de l’Install.wim disponible sur WSUS, Windows Update et Windows Update for Business. Actuellement il n’est pas possible de déployer le .ESD dans une séquence de tâches (MDT, ConfigMgr, …), il est de même possible d’automatiser son installation avec les mêmes lignes de commande du setup.exe. Je reviendrais sur un autre article pour expliquer comment le faire.

Dans les étapes suivantes je vais expliquer comment monter l'image WIM de l'ISO, ajouter le dernier Cumulative Update puis supprimer quelques applications built-in.

Pour cela je vais utiliser à la fois du :

CMD : Invite de commande avec privilèges d'administrateur
PS : PowerShell avec privilèges d'administrateur

Article TechNet sur DISM - Deployment Image Servicing and Management :
/en-us/windows-hardware/manufacture/desktop/dism---deployment-image-servicing-and-management-technical-reference-for-windows

Les mêmes commandes en PowerShell :
/en-us/powershell/module/dism/?view=win10-ps

Monter l'image WIM

CMD : Dism /Mount-Image /ImageFile:"C:\Temp\1703\sources\install.wim" /Index:1 /MountDir:C:\Temp\Mount
PS : Mount-WindowsImage -ImagePath "C:\Temp\1703\sources\install.wim" -Index 1 -Path "C:\Temp\Mount"

Ajouter le dernier Cumulative Update de votre version de Windows 10. La liste de ces mises à jour est disponible dans l'article suivant : https://technet.microsoft.com/fr-fr/windows/mt679505.aspx

Avec l’option/Add-Package on peut ajouter des fichiers .msu ou des .cab (Pack de langue, .NET 3.5... disponible dans l'ISO Features On Demand 'FoD' disponible dans le VLSC)

CMD : Dism /Add-Package /Image:C:\Temp\Mount /PackagePath:C:\Temp\KB\windows10.0-kb4034674-x64_cae3409b2e93b492093c43a18aa81f66cc70cdad.msu
PS : Add-WindowsPackage –Path "C:\Temp\Mount" –PackagePath "C:\Temp\KB\windows10.0-kb4034674-x64_cae3409b2e93b492093c43a18aa81f66cc70cdad.msu"

Suppression des applications Built-In

Lister les applications :

CMD : DISM /Get-ProvisionedAppxPackages /Image:C:\Temp\Mount
PS : Get-AppxProvisionedPackage -Path C:\Temp\Mount

Supprimer une application :

CMD : DISM /Image:C:\Temp\Mount /Remove-ProvisionedAppxPackage /PackageName:Microsoft.BingWeather_4.18.56.0_neutral_~_8wekyb3d8bbwe
PS : Remove-AppxProvisionedPackage -Path C:\Temp\Mount -PackageName Microsoft.BingWeather_4.18.56.0_neutral_~_8wekyb3d8bbwe

Le script PS suivant permet de supprimer une liste d'application

# Liste des applications Modern à désinstaller
$AppNameArray = @(
"Microsoft.WindowsFeedbackHub",
"Microsoft.XboxApp",
"Microsoft.XboxGameOverlay",
"Microsoft.XboxIdentityProvider",
"Microsoft.XboxSpeechToTextOverlay",
"Microsoft.ZuneMusic",
"Microsoft.ZuneVideo"
)
foreach ($AppName in $AppNameArray) {
Get-AppxProvisionedPackage -Path C:\Temp\Mount | Where-Object { $_.DisplayName -like $AppName } | %{Remove-AppxProvisionedPackage -PackageName $_.PackageName -Path C:\Temp\Mount -ErrorAction Ignore}
}

Il est aussi possible de supprimer l'application « Obtenir de l'aide » avec :

CMD : DISM /Image:C:\Temp\Mount /Remove-Capability /CapabilityName:App.Support.ContactSupport~~~~0.0.1.0
PS : Remove-WindowsCapability -Path C:\Temp\Mount -Name App.Support.ContactSupport~~~~0.0.1.0

Plus d'info dans l'article suivant : https://blogs.technet.microsoft.com/mniehaus/2017/03/22/removing-contact-support-app/

Démonter et sauvegarder le WIM

CMD : Dism /Unmount-Image /MountDir:C:\Temp\Mount /Commit
PS : Dismount-WindowsImage -Path C:\Temp\Mount -Save

Le résultat peut être utilisé pour installer Windows sur une nouvelle machine ou pour faire un upgrade.