Aller au contenu

Créer un WinPE personnalisé avec l’ADK 28000 : Secure Boot 2023, clé USB et ISO

Le contrôle Secure Boot échoue : la version SVN du gestionnaire de démarrage est inférieure au minimum requis.

Introduction

Windows PE (WinPE) est un environnement Windows minimal destiné au déploiement, au dépannage et à la maintenance des postes de travail. Cet article décrit la création d’un WinPE x64 en français à partir de l’ADK de la branche 28000 (Windows 11 26H1), avec composants facultatifs, pilotes réseau, mise à jour KB5129194 et fichiers de démarrage adaptés à la procédure Secure Boot 2023. Nous générerons une image ISO et une clé USB, puis vérifierons le résultat dans VirtualBox.

  • Créer un WinPE x64 en français.
  • Ajouter PowerShell, DISM, WMI et les composants utiles au déploiement.
  • Intégrer les pilotes réseau VirtIO.
  • Appliquer KB5129194.
  • Préparer une ISO et une clé USB, puis tester le démarrage UEFI.

Attention : effectue les opérations en administrateur, conserve une copie de l’ADK d’origine et teste les supports avant leur utilisation en production.

 Installer l’ADK et le module complémentaire WinPE

Installe le Windows Assessment and Deployment Kit (ADK), puis son module complémentaire Windows PE. Installe également les éventuelles mises à jour applicables.

Installation du Windows Assessment and Deployment Kit.
Installation du module complémentaire Windows PE.

Préparer l’environnement de création

Ouvre une invite de commandes en administrateur et initialise les outils de déploiement :

C:\WINDOWS\system32\cmd.exe /k "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\DandISetEnv.bat"

Crée ensuite l’arborescence WinPE x64 :

cd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment"
copype.cmd amd64 C:\WinPE

Monter l’image WinPE

Dans PowerShell administrateur, sélectionne le DISM de l’ADK, crée le répertoire de montage, monte l’image et règle l’espace temporaire à 512 Mo :

Set-Alias dism "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\dism.exe"
New-Item -ItemType Directory -Path C:\MountWim -Force
dism /Mount-Wim /WimFile:"C:\WinPE\media\sources\boot.wim" /Index:1 /MountDir:"C:\MountWim"
dism /Set-ScratchSpace:512 /Image:"C:\MountWim"

Documentation : Monter et personnaliser WinPE.

Ajouter les pilotes réseau VirtIO

Dans cet exemple, les pilotes réseau se trouvent sur E:. Seuls les pilotes réseau sont ajoutés ici ; si WinPE doit accéder à un contrôleur de stockage non pris en charge nativement, le pilote de stockage correspondant devra également être injecté dans WinPE.

dism /Image:"C:\MountWim" /Add-Driver /Driver:"E:\NetKVM\w11\amd64"

Téléchargements : pilotes VirtIO pour Windows.

Ajouter les composants facultatifs et le français

Les composants sont dans le répertoire WinPE_OCs de l’installation ADK :

$OC = "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs"

dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\WinPE-WMI.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\WinPE-NetFx.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\WinPE-Scripting.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\WinPE-PowerShell.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\WinPE-DismCmdlets.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\WinPE-EnhancedStorage.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\WinPE-SecureBootCmdlets.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\WinPE-SecureStartup.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\WinPE-StorageWMI.cab"

dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\fr-fr\lp.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\fr-fr\WinPE-DismCmdlets_fr-fr.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\fr-fr\WinPE-EnhancedStorage_fr-fr.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\fr-fr\WinPE-NetFx_fr-fr.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\fr-fr\WinPE-PowerShell_fr-fr.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\fr-fr\WinPE-Scripting_fr-fr.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\fr-fr\WinPE-SecureStartup_fr-fr.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\fr-fr\WinPE-WMI_fr-fr.cab"
dism /Image:"C:\MountWim" /Add-Package /PackagePath:"$OC\fr-fr\WinPE-StorageWMI_fr-fr.cab"
dism /Set-AllIntl:fr-FR /Image:"C:\MountWim"

Les noms et la disponibilité des CAB dépendent de la version de l’ADK. Vérifie le contenu de WinPE_OCs si un fichier est absent.

Intégrer KB5129194

Le package utilisé est placé dans C:\temp. Le Catalogue Microsoft Update permet de rechercher les mises à jour : catalog.update.microsoft.com.

dism /Image:"C:\MountWim" /Add-Package /PackagePath:"C:\temp\windows11.0-kb5129194-x64_e46546e8472484b91514d74bd6c5c4f6a3b647ac.msu"

Versions relevées dans l’image obtenue :

  • Servicing Stack : 28000.2950.1.11
  • RollupFix : 28000.2956.1.0
  • Version finale : 10.0.28000.2956

Remplacer les fichiers EFI de l’installation ADK (optionnel)

Cette étape modifie le répertoire Media de l’installation ADK, pas seulement le contenu déjà copié dans C:\WinPE\media. Les fichiers d’origine sont sauvegardés avec l’extension .bak.efi. Garde une copie de l’ADK d’origine.

$Media = "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\Media"

Copy-Item "$Media\bootmgr.efi" "$Media\bootmgr.bak.efi"
Copy-Item "C:\MountWim\Windows\Boot\EFI\bootmgr.efi" "$Media\bootmgr.efi" -Force

Copy-Item "$Media\EFI\Boot\bootx64.efi" "$Media\EFI\Boot\bootx64.bak.efi"
Copy-Item "C:\MountWim\Windows\Boot\EFI_EX\bootmgfw_EX.efi" "$Media\EFI\Boot\bootx64.efi" -Force

Vérifie les fichiers présents sur le support final : la modification du répertoire ADK ne garantit pas que tous les fichiers EFI déjà copiés dans C:\WinPE\media soient mis à jour.

Nettoyer l’image et ajouter BusyBox

dism /Image:"C:\MountWim" /Cleanup-Image /StartComponentCleanup /ResetBase /Defer
dism /Image:"C:\MountWim" /Cleanup-Image /StartComponentCleanup /ResetBase

Attention : /ResetBase rend les mises à jour installées définitives dans l’image et empêche notamment leur désinstallation individuelle. Valide la pertinence de ces commandes pour ta version de DISM avant de les exécuter.

Télécharge BusyBox pour Windows, puis copie-le dans l’image montée (adapte le chemin source au lieu où tu as téléchargé le fichier) :

Copy-Item "C:\temp\busybox64u.exe" "C:\MountWim\Windows\System32\busybox.exe"

Le fond d’écran WinPE se trouve dans C:\MountWim\Windows\System32\winpe.jpg. Modifie les autorisations si nécessaire, puis remplace le fichier par l’image voulue en conservant le nom winpe.jpg.

Démonter l’image et optimiser la compression

Ferme les fenêtres de l’Explorateur ouvertes dans C:\MountWim, puis enregistre les changements :

dism /Unmount-Image /MountDir:"C:\MountWim" /Commit

Exporte ensuite l’image avec une compression maximale :

Export-WindowsImage `
    -SourceImagePath "C:\WinPE\media\sources\boot.wim" `
    -SourceIndex 1 `
    -DestinationImagePath "C:\WinPE\media\sources\boot2.wim" `
    -CompressionType Max `
    -Verbose

Remove-Item "C:\WinPE\media\sources\boot.wim"
Rename-Item "C:\WinPE\media\sources\boot2.wim" "boot.wim"
Copy-Item "C:\WinPE\bootbins\etfsboot.com" "C:\WinPE\media\boot\etfsboot.com"

Supprimer le message « Press any key to boot from CD or DVD… » (non testé)

Ce message concerne le mécanisme de démarrage BIOS des supports optiques, pas le contrôle Secure Boot UEFI. Pour tester sa suppression sur le chemin BIOS concerné, supprime bootfix.bin avant de générer l’ISO :

Remove-Item "C:\WinPE\media\boot\bootfix.bin"

Valide le résultat sur le support final. Si le fichier n’existe pas, poursuis sans le créer : le comportement dépend du support et du chemin de démarrage utilisé.
Un article sur ce sujet est disponible ici : https://williamlam.com/2016/06/quick-tip-how-to-create-a-windows-2016-iso-supporting-efi-boot-wo-prompting-to-press-a-key.html

Générer l’ISO et la clé USB

La procédure utilise Make2023BootableMedia.ps1, version 1.4. Récupère le script depuis sa source d’origine et vérifie son contenu avant exécution.

Créer l’ISO

.\Make2023BootableMedia.ps1 `
    -MediaPath "C:\WinPE\media" `
    -TargetType ISO `
    -ISOPath "C:\WinPE\WinPE_11_26H1_28000.2956_x64_FR.iso"

Créer la clé USB

Vérifie soigneusement la lettre du lecteur : le support peut être formaté ou modifié. Dans cet exemple, la clé USB correspond à D:.

.\Make2023BootableMedia.ps1 `
    -MediaPath "C:\WinPE\media" `
    -TargetType USB `
    -USBDrive D:

Vérifier le support de démarrage

Le dépôt utilisé est SecureBoot-CA-2023-Updates. Le script de contrôle est Check_BootMedia.ps1.

Extrait du résultat obtenu :

Cannot confirm if Windows 11 26H2 (26300.9457) has the latest files
Secure Boot: ON
Virtualization Based Security: OFF

UEFI KEK Certs
Microsoft Corporation KEK CA 2011
Microsoft Corporation KEK 2K CA 2023

UEFI DB Certs
Microsoft Corporation UEFI CA 2011
Microsoft Option ROM UEFI CA 2023
Microsoft UEFI CA 2023
Windows UEFI CA 2023

UEFI DBX Certs
Microsoft Windows Production PCA 2011
Windows BootMgr SVN 9.0

USB Drive d: « WINPE »
Windows Boot Manager [Windows UEFI CA 2023] is BANNED.
Il n’existe aucune image correspondante.


Le script indique qu’il ne peut pas confirmer la présence des fichiers les plus récents pour Windows 11 26H2 et signale une entrée comme interdite. Ce résultat ne suffit pas à conclure que le support ne démarre pas : lors des essais effectués ici, la clé USB démarre correctement avec Secure Boot activé. Il faut rapprocher le résultat du comportement réel du support et vérifier les fichiers EFI présents.

Les certificats UEFI, la base de révocation DBX et les exigences de version SVN sont des éléments distincts. Pour une validation avant production, teste le support sur plusieurs configurations, notamment sur le matériel physique ciblé.

Résultat : démarrage UEFI dans VirtualBox

Après la personnalisation de l’image, l’intégration des mises à jour et la préparation des fichiers de démarrage, le support peut être testé dans une machine virtuelle configurée en UEFI avec Secure Boot activé.

WinPE personnalisé démarré dans VirtualBox en mode UEFI.

Cette validation permet de vérifier le fonctionnement du support dans l’environnement utilisé. Avant une mise en production, complète les essais sur du matériel physique représentatif du parc cible.

Et ensuite ?

Ce WinPE constitue une base pour construire un environnement de déploiement Windows personnalisé : scripts PowerShell, automatisation des installations, détection du matériel, partitionnement et intégration à une infrastructure de déploiement. L’image ISO peut aussi être utilisée avec Bootimus ; sa configuration fera l’objet d’un article distinct.

Conclusion

Créer un WinPE personnalisé ne se limite pas à exécuter copype.cmd. Il faut sélectionner les composants nécessaires, intégrer les mises à jour adaptées, gérer les pilotes et vérifier que les fichiers de démarrage du support correspondent aux exigences de la plateforme cible.

Cette procédure a permis de construire un WinPE x64 en français à partir de l’ADK 28000, d’intégrer KB5129194, de préparer les fichiers de démarrage et de générer une ISO ainsi qu’une clé USB. Le test dans VirtualBox avec Secure Boot activé confirme le démarrage dans l’environnement utilisé ; des essais sur le matériel physique cible restent recommandés.

Documentation et ressources

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Toggle Dark Mode