2026-10-18 19:31:34 +02:00
2026-10-17 20:41:41 +02:00
2026-10-15 21:15:33 +02:00
2026-10-18 04:14:17 +02:00
2026-10-17 20:41:41 +02:00
2026-10-18 04:14:17 +02:00
2026-10-18 04:14:17 +02:00
2026-10-18 19:31:34 +02:00
2026-10-18 19:31:34 +02:00

DeployCenter

DeployCenter est un outil PowerShell de préparation et de déploiement de Windows depuis Windows PE (WinPE). Il détecte le matériel, analyse les sources Windows disponibles, propose une édition et un schéma de partitionnement, puis applique Windows et configure le démarrage UEFI et l’environnement de récupération WinRE.

L’interface est localisée selon la langue d’interface de WinPE (français ou anglais). Les thèmes, profils de partitionnement et profils Unattend sont chargés depuis des fichiers de données afin de faciliter leur personnalisation.

Attention : l’installation efface entièrement le disque physique sélectionné. Vérifiez soigneusement le numéro, le modèle et la capacité du disque avant de confirmer. Une erreur de sélection entraîne la perte de ses données.

Fonctionnalités

  • Inventaire matériel et informations sur les disques physiques.
  • Recherche de sources Windows sur les chemins configurés, avec prise en charge des images ISO, WIM et ESD ainsi que des sources extraites.
  • Sélection de l’édition Windows contenue dans une image.
  • Profils de partitionnement UEFI/GPT avec WinRE avant C:, avec ou sans partition D:.
  • Installation de pilotes INF correspondant au constructeur, au modèle/SKU et à la version de Windows.
  • Génération facultative d’un fichier de réponses Windows (Unattend), notamment pour configurer le nom d’hôte et un compte local.
  • Configuration UEFI, copie de winre.wim, enregistrement et activation de WinRE.
  • Progression du déploiement, journalisation et copie du journal à la racine de C: après une tentative d’installation.
  • Mode interactif ou déploiement automatisé en ligne de commande.

Prérequis et fichiers

DeployCenter est conçu pour fonctionner dans WinPE avec Windows PowerShell 5.1 et les outils Windows nécessaires au déploiement : DISM, DiskPart, mountvol, bcdboot, reagentc, Robocopy et les cmdlets de gestion du stockage. Les images, les partages et les pilotes doivent être accessibles depuis WinPE.

Conservez la structure du dépôt lors de la copie dans l’environnement WinPE :

DeployCenter/
├── DeployCenter.ps1
├── DeployCenter.ini.example
├── HardwareInfo.ps1
├── Assets/
├── Locales/
├── Modules/
├── Partitioning/Profiles/
├── Themes/
└── Unattend/
    ├── Profiles/
    └── Templates/

Les dossiers de modules, thèmes, profils, modèles XML, langues et ressources graphiques sont requis pour les fonctionnalités correspondantes. Le dossier Drivers est normalement placé au même niveau que le dossier DeployCenter.

Installation et premier lancement

  1. Copiez DeployCenter.ini.example sous le nom DeployCenter.ini dans le dossier DeployCenter.
  2. Modifiez les chemins de recherche des sources et les paramètres nécessaires. Le fichier INI est lu au démarrage et n’est jamais modifié par l’application.
  3. Démarrez WinPE, connectez les partages réseau nécessaires et lancez PowerShell dans le dossier DeployCenter.
  4. Exécutez :
powershell.exe -ExecutionPolicy Bypass -File .\DeployCenter.ps1

Pour ouvrir l’interface dans une fenêtre redimensionnable, notamment pour le diagnostic :

powershell.exe -ExecutionPolicy Bypass -File .\DeployCenter.ps1 -Windowed

Pour demander les copies locales tout en conservant le choix interactif du disque, de l’image et des profils :

powershell.exe -ExecutionPolicy Bypass -File .\DeployCenter.ps1 -CopyLocally Sources,Drivers

UltraVNC est désactivé par défaut. L’option -Vnc le démarre au lancement ; dans ce cas, DeployCenter désactive le pare-feu WinPE afin de permettre la connexion VNC. Utilisez cette option uniquement sur un réseau de déploiement maîtrisé : la désactivation concerne le pare-feu WinPE dans son ensemble.

Pour utiliser -Vnc, décompressez tools/uvnc.zip dans le dossier parent de DeployCenter, de façon à obtenir le dossier uvnc au même niveau que DeployCenter :

<dossier parent>/
├── DeployCenter/
└── uvnc/

La configuration fournie chiffre la connexion VNC avec le plugin SecureVNC (UseDSMPlugin=1). Le client UltraVNC doit donc lui aussi activer ce plugin et utiliser SecureVNCPlugin64.dsm. Pour se connecter sans chiffrement, désactivez le plugin côté client ou mettez UseDSMPlugin=0 dans uvnc/ultravnc.ini avant le lancement de DeployCenter.

Configuration du client UltraVNC avec le plugin SecureVNC activé

Déploiement interactif

Écran principal de DeployCenter

  1. Vérifiez les informations matérielles et sélectionnez le disque physique de destination.
  2. Cliquez sur Choisir… pour ouvrir Sources Windows. Les chemins à analyser sont séparés par des points-virgules ; Rechercher actualise les résultats. La liste peut être filtrée, et un double-clic sur une image permet également de choisir une édition.

Fenêtre Sources Windows avec les images détectées

  1. Sélectionnez l’édition Windows voulue. DeployCenter recherche alors, si disponible, un pack de pilotes correspondant au matériel et à cette édition.

Sélection d’une édition Windows dans une image WIM

  1. Choisissez un profil de partitionnement. Le profil par défaut réserve EFI, MSR et WinRE avant C:, qui reçoit l’espace restant. Le profil C:/D: demande la taille de C: et attribue le reste à D:.
  2. Choisissez un profil de première ouverture. Use OOBE laisse Windows gérer l’expérience de première ouverture sans générer de fichier Unattend ni demander de nom d’hôte. Le profil OEM installation configure le nom d’hôte et un compte local à partir de DeployCenter.ini.
  3. Cliquez sur Installer, relisez les informations de confirmation et confirmez uniquement si le disque choisi peut être effacé.
  4. Suivez les étapes dans la fenêtre de progression. Après réussite, vérifiez le résultat et le rappel éventuel concernant la taille de WinRE avant de valider le redémarrage.

Progression du déploiement

Après réussite, les durées de chaque étape restent visibles jusqu’à la validation de la fenêtre de fin :

Déploiement terminé

L’installation nécessite une image UEFI/GPT compatible et contenant Windows\System32\Recovery\winre.wim. Le moteur actuel ne propose pas de profil MBR/BIOS. Un manque de place empêchant la copie de winre.wim fait échouer le déploiement ; le non-respect des recommandations Microsoft de taille ou d’espace libre WinRE déclenche un avertissement. En présence de cet avertissement, le redémarrage automatique n’est pas présélectionné.

Sources Windows

Dans DeployCenter.ini, la section [Sources] accepte plusieurs racines séparées par des points-virgules. %DEPLOY_VOLUME% désigne le lecteur qui héberge DeployCenter :

[Sources]
Paths=%DEPLOY_VOLUME%;Z:\

DeployCenter recherche les fichiers ISO, WIM et ESD ainsi que les dossiers de sources extraits. Pour les ISO, le fichier est monté en lecture seule pendant l’analyse et le déploiement, puis démonté lorsque l’opération se termine ou est annulée.

Par défaut, DISM travaille directement depuis les chemins source. Le paramètre -CopyLocally permet de demander une copie Robocopy vers le disque Windows avant le traitement, en mode interactif comme automatisé : Sources pour l’image, Drivers pour le pack de pilotes, ou les deux. Cela nécessite suffisamment d’espace libre sur la partition Windows. Le paramètre absent n’effectue pas ces copies. La copie de winre.wim vers la partition de récupération reste nécessaire dans tous les cas.

Exemple d’écran de fin lorsque les copies locales ont été demandées :

Fin du déploiement avec copie locale des sources et des pilotes

Pilotes

Par défaut, la racine des packs est Drivers au même niveau que DeployCenter. Elle peut être redéfinie par [Drivers] RootPath dans le fichier INI. Les chemins relatifs sont résolus depuis le dossier DeployCenter.

Organisez les packs de cette manière :

Drivers/
└── Lenovo/
    └── <préfixe du modèle ou SKU>/
        └── Windows 11/
            ├── ...
            └── pilote.inf

Les constructeurs reconnus sont Lenovo, Dell, HP et Microsoft. Les dossiers de version reconnus incluent Windows 10, Windows 11 et Windows Server <année>. Les fichiers INF peuvent se trouver dans des sous-dossiers ; DISM les ajoute récursivement à l’image Windows hors ligne. L’écran principal affiche le chemin recherché et indique si un pack correspondant a été trouvé.

Configuration de DeployCenter.ini

DeployCenter.ini.example décrit toutes les options et leurs valeurs par défaut. Les principales sections sont :

  • [General] Theme : thème chargé depuis Themes/<nom>.psd1 (Light par défaut).
  • [Sources] Paths : racines de recherche séparées par des points-virgules.
  • [Partitioning] WinRESizeMB : taille réservée à WinRE en Mo (1024 Mo par défaut).
  • [Drivers] RootPath : racine personnalisée des pilotes, vide pour utiliser le dossier Drivers voisin ; les clés URL sont des liens de référence constructeur.
  • [Unattend] : compte local, mot de passe encodé, informations d’assistance et fond d’écran.
  • [UltraVNC] Password : mot de passe de test facultatif ; vide, un mot de passe aléatoire est généré.

Le mot de passe d’un compte local Unattend se prépare avec :

powershell.exe -ExecutionPolicy Bypass -File .\DeployCenter.ps1 -EncodeUnattendPassword

Saisissez le mot de passe à l’invite masquée, puis placez la valeur produite dans [Unattend] AdminPasswordBase64. Cette valeur Base64 est réversible et ne constitue pas un chiffrement ; protégez DeployCenter.ini en conséquence. Ne confondez pas ce réglage avec [UltraVNC] Password, qui est une option de test distincte.

Les clés SupportProvider, SupportURL et SupportAppURL sont facultatives. SupportURL correspond à un site Web d’assistance ; SupportAppURL correspond au protocole d’une application d’assistance. WallpaperPath accepte un chemin .png, .jpg ou .bmp, absolu ou relatif au dossier DeployCenter ; vide, il laisse le fond Windows inchangé. Ces personnalisations sont appliquées avec un profil Unattend, pas avec Use OOBE.

Déploiement automatisé

-NonInteractive lance le déploiement sans demander les choix de la première page. Tous les paramètres requis doivent être fournis et -ConfirmDiskErase est obligatoire. L’application affiche toujours la fenêtre de progression.

Exemple pour Windows 11 sur le disque 0, avec le profil C:/D: et le profil Unattend OEM :

powershell.exe -ExecutionPolicy Bypass -File .\DeployCenter.ps1 `
  -NonInteractive -DiskNumber 0 `
  -ImagePath 'Y:\Windows11.iso' -EditionIndex 6 `
  -PartitionProfileId 'UEFI-GPT-WinRE-C-D' -CSizeGB 80 `
  -UnattendProfileId 'OEMInstallation' -HostName 'POSTE-001' `
  -ConfirmDiskErase -RestartWhenComplete `
  -CopyLocally Sources,Drivers

Paramètres requis :

  • -DiskNumber : numéro du disque physique à effacer.
  • -ImagePath : chemin d’un ISO, WIM, ESD ou d’un dossier de sources Windows.
  • -EditionIndex : index de l’édition dans l’image.
  • -PartitionProfileId : ID d’un fichier PSD1 dans Partitioning/Profiles.
  • -UnattendProfileId : ID d’un profil dans Unattend/Profiles, ou OOBE pour ne pas appliquer d’Unattend.
  • -ConfirmDiskErase : confirmation explicite de l’effacement du disque.

Paramètres conditionnels et facultatifs :

  • -HostName : requis lorsqu’un profil Unattend configure le nom de machine ; le nom doit respecter la limite NetBIOS de 15 caractères.
  • -CSizeGB : requis par un profil qui demande la taille de C: ; le profil C:/D: attribue le reste à D:.
  • -RestartWhenComplete : demande le redémarrage après réussite ; les avertissements de capacité WinRE annulent cette demande.
  • -CopyLocally Sources,Drivers : copie l’image et les pilotes localement. Les valeurs possibles sont Sources et Drivers, individuellement ou ensemble. Sans ce paramètre, DISM utilise directement les chemins source.

-CopyLocally peut être utilisé seul avec l’interface interactive ou combiné au mode -NonInteractive. Les autres paramètres de déploiement en ligne de commande requièrent -NonInteractive. Pour laisser Windows gérer la première ouverture, utilisez -UnattendProfileId OOBE et omettez -HostName. Le processus retourne 0 en cas de réussite et 1 si la préparation ou le déploiement échoue. Après une tentative d’installation, le journal est également copié à la racine de C:\.

Journaux et dépannage

Le bouton Journal ouvre le journal de session. Les fichiers sont créés dans Logs avec l’adresse IPv4 détectée et l’horodatage. Après une tentative de déploiement, une copie du journal est placée à la racine de C:\ pour rester accessible même si le partage réseau n’est plus disponible.

En cas d’échec :

  1. Relevez le message final et l’étape en échec dans la fenêtre de progression.
  2. Consultez le journal DeployCenter et, si nécessaire, les journaux système DISM/Windows Setup sur la machine cible.
  3. Vérifiez l’accès réseau aux sources, l’index d’édition, l’espace du disque cible et la présence des fichiers INF attendus.
  4. Après un échec de partitionnement, les lettres et partitions sont conservées autant que possible pour faciliter le diagnostic. Ne relancez pas l’installation avant d’avoir vérifié le disque sélectionné et son état.

Les messages de DeployCenter suivent la langue de WinPE. Les sorties DISM, DiskPart et des autres outils Windows restent dans la langue de ces outils.

Modules et personnalisation

  • DeployCenter.ps1 : point d’entrée, initialisation et orchestration de l’interface.
  • Modules/UI.psm1 : fenêtres, contrôles et workflows d’interface.
  • Modules/Deployment.psm1 : partitionnement et application/configuration de Windows.
  • Modules/WindowsSources.psm1 : détection des sources, montage ISO et lecture des éditions.
  • Modules/Partitioning.psm1 et Partitioning/Profiles/*.psd1 : lecture et validation des profils de partitionnement.
  • Modules/DriverManagement.psm1 : recherche des packs selon le matériel et l’édition Windows.
  • Modules/Unattend.psm1, Unattend/Profiles/*.psd1 et Unattend/Templates/*.xml : profils et génération du fichier de réponses.
  • Modules/Configuration.psm1 : lecture de DeployCenter.ini.
  • Modules/Logging.psm1 : journalisation et copie finale du journal.
  • Modules/Localization.psm1 et Locales/*.psd1 : langue de l’interface et des messages DeployCenter.
  • Modules/ThemeManager.psm1 et Themes/*.psd1 : palettes de l’interface.

Les profils PSD1 sont des données de configuration ; gardez leur structure et leurs identifiants cohérents. Les fichiers PowerShell et profils utilisés par Windows PowerShell 5.1 doivent rester encodés en UTF-8 avec BOM pour préserver correctement les caractères accentués.

S
Description
No description provided
Readme
12 MiB
0 Stars 1 Watchers 0 Forks
2026-10-18 20:07:13 +02:00
Languages
PowerShell 100%