Erreur Sysprep AppX Windows 10

Windows 10 peut rencontrer des soucis lors d’un « sysprep », ces erreurs peuvent notamment venir des « AppX ».
Nous allons notamment nous intéresser à l’erreur Sysprep AppX Windows 10 0x80073cf2 fail remove package.

Nous allons donc voir à quoi ces AppX correspondent et surtout comment les supprimer.

AppX

Les AppX correspondent à vos applications intégrées de Windows 10, elles apparaissent notamment en mode « tuile » dans votre menu « Démarrer ».

Erreur Sysprep AppX Windows 10 0x80073cf2 fail remove package

Certaines sont présentes dès l’installation de votre PC ou s’installent via des mises à jour, et d’autres sont installées à partir du Microsoft Store.

Erreur Sysprep

Lorsque vous exécutez votre commande sysprep :

C:\Windows\system32\Sysprep\sysprep.exe /generalize /oobe /shutdown

Vous pouvez rencontrer ce type de message d’erreur :

Erreur Sysprep AppX Windows 10 0x80073cf2 fail remove package

Il faut donc aller dans le chemin indiqué :

C:\Windows\System32\Sysprep\Panther\setupact.log

Votre fichier doit ressembler à ceci :

2018-05-31 14:38:19, Info                  SYSPRP ========================================================
2018-05-31 14:38:19, Info                  SYSPRP ===          Beginning of a new sysprep run          ===
2018-05-31 14:38:19, Info                  SYSPRP ========================================================
2018-05-31 14:38:19, Info       [0x0f004d] SYSPRP The time is now 2018-05-31 14:38:19
2018-05-31 14:38:19, Info       [0x0f004e] SYSPRP Initialized SysPrep log at C:\Windows\System32\Sysprep\Panther
2018-05-31 14:38:19, Info       [0x0f0054] SYSPRP ValidatePrivileges:User has required privileges to sysprep machine
2018-05-31 14:38:19, Info       [0x0f007e] SYSPRP FCreateTagFile:Tag file C:\Windows\System32\Sysprep\Sysprep_succeeded.tag does not already exist, no need to delete anything
2018-05-31 14:38:19, Warning               SYSPRP WinMain: File operations pending
2018-05-31 14:38:19, Info       [0x0f005f] SYSPRP ParseCommands:Found supported command line option 'GENERALIZE'
2018-05-31 14:38:19, Info       [0x0f005f] SYSPRP ParseCommands:Found supported command line option 'OOBE'
2018-05-31 14:38:19, Info       [0x0f00d7] SYSPRP WinMain:Pre-validing 'cleanup' internal providers.
2018-05-31 14:38:19, Info                  SYSPRP RunExternalDlls:Running platform actions specified in action file for phase 3
2018-05-31 14:38:19, Info                  SYSPRP SysprepSession::CreateSession: Successfully created instance with action file C:\Windows\System32\Sysprep\ActionFiles\Cleanup.xml, and mode <null>
2018-05-31 14:38:19, Info                  SYSPRP SysprepSession::Validate: Beginning action execution from C:\Windows\System32\Sysprep\ActionFiles\Cleanup.xml
2018-05-31 14:38:19, Info                  SYSPRP SysprepSession::CreateXPathForSelection: Sysprep mode in registry is <null>
2018-05-31 14:38:19, Info                  SYSPRP SysprepSession::CreateXPathForSelection: Processor architecture in registry is AMD64
2018-05-31 14:38:19, Info                  SYSPRP ActionPlatform::LaunchModule: Executing method 'Sysprep_Clean_Validate_Opk' from C:\Windows\System32\spopk.dll
2018-05-31 14:38:19, Info                  SYSPRP ActionPlatform::LaunchModule: Successfully executed 'Sysprep_Clean_Validate_Opk' from C:\Windows\System32\spopk.dll without error
2018-05-31 14:38:19, Info       [0x0f00d7] SYSPRP WinMain:Pre-validing 'generalize' internal providers.
2018-05-31 14:38:19, Info                  SYSPRP RunExternalDlls:Running platform actions specified in action file for phase 1
2018-05-31 14:38:19, Info                  SYSPRP SysprepSession::CreateSession: Successfully created instance with action file C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml, and mode <null>
2018-05-31 14:38:19, Info                  SYSPRP SysprepSession::Validate: Beginning action execution from C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml
2018-05-31 14:38:19, Info                  SYSPRP SysprepSession::CreateXPathForSelection: Sysprep mode in registry is <null>
2018-05-31 14:38:19, Info                  SYSPRP SysprepSession::CreateXPathForSelection: Processor architecture in registry is AMD64
2018-05-31 14:38:19, Info                  SYSPRP ActionPlatform::LaunchModule: Executing method 'SysprepGeneralizeValidate' from C:\Windows\System32\AppxSysprep.dll
2018-05-31 14:38:19, Info                  SYSPRP Entering SysprepGeneralizeValidate (Appx) - validating whether all apps are also provisioned.

2018-05-31 14:38:20, Error                 SYSPRP Package Microsoft.LanguageExperiencePackfr-fr_17134.3.8.0_neutral__8wekyb3d8bbwe was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image.

2018-05-31 14:38:20, Error                 SYSPRP Failed to remove apps for the current user: 0x80073cf2.

2018-05-31 14:38:20, Error                 SYSPRP Exit code of RemoveAllApps thread was 0x3cf2.

2018-05-31 14:38:20, Error                 SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'SysprepGeneralizeValidate' from C:\Windows\System32\AppxSysprep.dll; dwRet = 0x3cf2
2018-05-31 14:38:20, Error                 SYSPRP SysprepSession::Validate: Error in validating actions from C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml; dwRet = 0x3cf2
2018-05-31 14:38:20, Error                 SYSPRP RunPlatformActions:Failed while validating Sysprep session actions; dwRet = 0x3cf2
2018-05-31 14:38:20, Error      [0x0f0070] SYSPRP RunExternalDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = 0x3cf2
2018-05-31 14:38:20, Error      [0x0f00d8] SYSPRP WinMain:Hit failure while pre-validate sysprep generalize internal providers; hr = 0x80073cf2
2018-05-31 14:41:01, Info       [0x0f0052] SYSPRP Shutting down SysPrep log
2018-05-31 14:41:01, Info       [0x0f004d] SYSPRP The time is now 2018-05-31 14:41:01

Les lignes qui nous intéressent sont donc celles en « Error » :

2018-05-31 14:38:20, Error SYSPRP Package Microsoft.LanguageExperiencePackfr-fr_17134.3.8.0_neutral__8wekyb3d8bbwe was installed for a user,
 but not provisioned for all users. 
This package will not function properly in the sysprep image. 

2018-05-31 14:38:20, Error SYSPRP Failed to remove apps for the current user: 0x80073cf2. 

2018-05-31 14:38:20, Error SYSPRP Exit code of RemoveAllApps thread was 0x3cf2.

On y apprend donc que le package « Microsoft.LanguageExperiencePackfr-fr_17134.3.8.0_neutral__8wekyb3d8bbwe » est installé pour un seul utilisateur et non provisionné pour tous.

Le code erreur que vous devez retrouver dans votre log doit être celui-ci : « Failed to remove apps for the current user: 0x80073cf2« 

Il nous dit donc qu’il n’arrive pas à supprimer l’application pour l’utilisateur « 0x80073cf2 ».

Gestion des package AppX

Pour afficher tous les paquets AppX il faut lancer une console PowerShell en mode administrateur, puis taper la commande suivante :

Get-AppxPackage -AllUser | Format-List -Property PackageFullName,PackageUserInformation

Une grande liste doit sortir, avec le nom complet du paquet ainsi que les informations d’utilisateur :

PackageFullName        : Microsoft.LanguageExperiencePackfr fr_17134.3.8.0_neutral__8wekyb3d8bbwe
PackageUserInformation : {S-1-5-21-3098263184-3775985707-2800868580-1001 [BKI]: Installed}

PackageFullName        : Microsoft.MSPaint_4.1805.15037.0_x64__8wekyb3d8bbwe
PackageUserInformation : {S-1-5-21-3098263184-3775985707-2800868580-1001 [BKI]: Installed}

PackageFullName        : Microsoft.Office.OneNote_17.9330.20531.0_x64__8wekyb3d8bbwe
PackageUserInformation : {S-1-5-21-3098263184-3775985707-2800868580-1001 [BKI]: Installed}

Maintenant il nous reste à supprimer notre package :

Remove-AppxPackage Microsoft.LanguageExperiencePackfr-fr_17134.3.8.0_neutral__8wekyb3d8bbwe Remove-AppxProvisionedPackage Microsoft.LanguageExperiencePackfr-fr_17134.3.8.0_neutral__8wekyb3d8bbwe

Depuis la version 1709 de Windows 10, une option permet de supprimer depuis n’importe quel utilisateur (vous évitant des aller-retour entre vos différentes sessions) :

Remove-AppxPackage -AllUsers Microsoft.LanguageExperiencePackfr-fr_17134.3.8.0_neutral__8wekyb3d8bbwe

Si le paquet n’a pas comme information l’utilisateur utilisé pour la commande (ici : [BKI]), il faudra vous connecter sous l’utilisateur en question, et ré-effectuer la commande.

Message indiquant que vous n’utilisez pas le bon utilisateur :

0x80073CF1, le package est introuvable.

Depuis la version 1709 de Windows 10, une option permet de supprimer depuis n’importe quel utilisateur (vous évitant des aller-retour entre vos différentes sessions) :

Remove-AppxPackage -AllUsers Microsoft.LanguageExperiencePackfr-fr_17134.3.8.0_neutral__8wekyb3d8bbwe

Il vous restera à réessayer votre « sysprep » et refaire la même commande pour chaque paquet.

Script

Il est aussi possible de passer par un script, exécutable via PowerShell.

Créez un fichier avec comme extension « .ps1 », et collez-y les commandes suivantes :

$ListeAppX = "A278AB0D.DisneyMagicKingdoms","Microsoft.BingFinance",
"828B5831.HiddenCityMysteryofShadows","9E2F88E3.Twitter",
"Flipboard.Flipboard", "ShazamEntertainmentLtd.Shazam",
"king.com.CandyCrushSaga","king.com.CandyCrushSodaSaga",
"king.com.*","ClearChannelRadioDigital.iHeartRadio",
"Microsoft.BingHealthAndFitness", "Microsoft.Getstarted",
"Microsoft.MicrosoftOfficeHub","king.com.BubbleWitch3Saga",
"Microsoft.MicrosoftSolitaireCollection","Microsoft.3DBuilder",
"Microsoft.LanguageExperiencePackfr-fr","*Microsoft.BingNews*",
"*Microsoft.DesktopAppInstaller*","*Microsoft.GetHelp*",
"*Microsoft.Getstarted*", "*Microsoft.Messaging*",
"*Microsoft.Microsoft3DViewer*","*Microsoft.MicrosoftOfficeHub*",
"*Microsoft.MicrosoftSolitaireCollection*","*Microsoft.NetworkSpeedTest*",
"*Microsoft.Office.OneNote*","*Microsoft.Office.Sway*",
"*Microsoft.OneConnect*", "*Microsoft.People*","*Microsoft.Print3D*",
"*Microsoft.SkypeApp*","*Microsoft.StorePurchaseApp*",
"*Microsoft.WindowsAlarms*","*Microsoft.WindowsCamera*",
"*microsoft.windowscommunicationsapps*", "*Microsoft.WindowsFeedbackHub*",
"*Microsoft.WindowsMaps*","*Microsoft.WindowsSoundRecorder*",
"*Microsoft.Xbox.TCUI*","*Microsoft.XboxApp*","*Microsoft.XboxGameOverlay*",
"*Microsoft.XboxIdentityProvider*","*Microsoft.XboxSpeechToTextOverlay*",
"*Microsoft.ZuneMusic*", "*Microsoft.ZuneVideo*",
"*Duolingo-LearnLanguagesforFree*","*CandyCrush*"
foreach ($App in $ListeAppX)
{
Get-AppxPackage -Name $App | Remove-AppxPackage
Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like $App | Remove-AppxProvisionedPackage -Online
}

La partie $ListeAppX correspond à une liste pré-faite d’applications pouvant créer des problèmes pour le « sysprep », modifiez-la à votre guise, et ajoutez les paquets qui posent problèmes dans votre « setupact.log ».

Le seconde partie sert à récupérer ces paquets et à les supprimer via les commandes précédentes :  « Remove-AppxProvisionedPackage » et « Remove-AppxPackage ».

Pour exécuter votre script, vous pouvez utiliser la console Powershell ISE en mode administrateur afin de pouvoir avoir le résultat des commandes :

Pour pouvoir exécuter un script, il faut avant tout activer l’exécution de celui-ci, via la commande suivante :

Set-ExecutionPolicy Unrestricted

Une fois vos modifications terminées, pensez à réactiver la restriction sur la police d’exécution de script  :

Set-ExecutionPolicy Restricted

L’Erreur Sysprep AppX Windows 10 0x80073cf2 fail remove package fait maintenant partie du passé !

Vous pouvez retrouver les détails de la commande GetAppX sur : https://docs.microsoft.com/en-us/powershell/module/appx/get-appxpackage?view=win10-ps