benoit 1c67cb2630 Ajout d'un profil avec deux partitions
Correction de la mise en page et ajout de la demande du nom d'hôte
2026-10-15 23:45:54 +02:00
2026-10-15 21:15:33 +02:00
2026-10-15 21:15:33 +02:00
2026-10-15 21:15:33 +02:00

DeployCenter — première version de la réécriture

Contenu

  • DeployCenter.ps1 : point d'entrée et logique applicative existante.
  • Modules/ThemeManager.psm1 : découverte, chargement et validation des thèmes PSD1, avec prise en charge des rôles de boutons.
  • Modules/UI.psm1 : style centralisé des boutons (normal, survol, appui et désactivé).
  • Themes/Light.psd1 et Themes/Dark.psd1 : palettes et styles des boutons.

Lancement

Depuis le dossier DeployCenter, lancer :

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

Pour lancer en fenêtre redimensionnable :

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

Conserver à côté du script les ressources habituelles du projet (Assets, uvnc, HardwareInfo.ps1, etc.). Les dossiers Modules et Themes doivent rester à côté de DeployCenter.ps1.

Mise en page

Le redimensionnement de la fenêtre recalcule désormais les largeurs des panneaux, la taille du tableau et du journal, ainsi que la position des boutons. Les marges et hauteurs des contrôles restent volontairement fixes pour préserver la lisibilité sous WinPE.

Limites connues de cette première étape

Cette version centralise le chargement des thèmes et le style des boutons, et introduit une mise en page adaptative. La logique de déploiement, la détection des sources, l'inventaire et UltraVNC restent pour l'instant dans le script principal : leur extraction en modules indépendants doit être faite progressivement afin de ne pas casser les dépendances PowerShell ni le fonctionnement WinPE.

Le script n'a pas pu être exécuté dans cet environnement, faute de moteur Windows PowerShell/WinForms. Il doit être validé sur la machine WinPE cible avant remplacement de la version actuelle.

Mot de passe UltraVNC de test

Dans DeployCenter.ini, ajoutez la section suivante. Un champ Password non vide est utilisé tel quel au lieu de générer un mot de passe aléatoire ; createpassword64.exe continue à le convertir dans le format attendu par UltraVNC. Laissez Password= vide pour conserver le comportement par défaut.

[UltraVNC]
Password=MonMotDePasseDeTest

Le mot de passe est stocké en clair dans DeployCenter.ini : utilisez cette option uniquement dans un environnement de test protégé.

Correctifs v3

  • En-têtes du tableau des éditions Windows avec une couleur dédiée définie par le thème (TableHeader).
  • Sélection unique explicite dans la liste des éditions et dessin de la sélection basé sur l'élément réellement sélectionné.

Correctif v12 — pied de page

  • La fenêtre principale affiche l'adresse IP de déploiement et le mot de passe UltraVNC dans son pied de page.
  • Le pied de page commun reste activé par défaut ; le paramètre -ShowFooter $false permet de le masquer dans la fenêtre « Éditions Windows ». Les autres fenêtres conservent leur comportement habituel.

Correctif v15 — pied de page cohérent

  • Le pied de page commun affiche par défaut l’adresse IP et le mot de passe VNC dans toutes les fenêtres qui l’utilisent.
  • Seule la fenêtre de sélection « Éditions Windows » masque entièrement le pied de page via -ShowFooter $false.

Alternance des lignes des tableaux

Les tableaux utilisent une alternance paire/impaire définie dans chaque thème (TableRowEven et TableRowOdd). La sélection conserve la couleur d’accent du thème. Les valeurs sont partagées par les fenêtres Sources Windows et Éditions Windows.

Paramètre de démarrage VNC (v18)

  • Sans paramètre : UltraVNC ne démarre pas.
  • Avec -vnc : UltraVNC démarre.

Exemple : powershell.exe -ExecutionPolicy Bypass -File .\DeployCenter.ps1 -vnc

Options de lancement

  • Sans paramètre : UltraVNC n'est pas démarré.
  • Avec -Vnc (alias PowerShell utilisable sous la forme -vnc) : UltraVNC est démarré.
  • Les fenêtres sont non redimensionnables par défaut via Set-DeployCenterFormSizing; passer -Resizable à cette fonction commune pour autoriser le redimensionnement.

Module VNC

La gestion d'UltraVNC est isolée dans Modules/VNC.psm1. Le fichier est chargé par dot-sourcing uniquement lorsque -Vnc est fourni, afin de conserver le contexte partagé de DeployCenter.

  • Sans -Vnc, UltraVNC ne démarre pas et DeployCenter ne demande pas la désactivation du pare-feu.
  • Avec -Vnc, le module VNC exécute wpeutil DisableFirewall avant de lancer UltraVNC. Cette commande désactive le pare-feu WinPE dans son ensemble ; utilisez cette option sur un réseau de déploiement maîtrisé.
  • Le démarrage VNC et les erreurs sont consignés dans le journal DeployCenter.

Modules

  • Modules/Network.psm1 : détection de l’adresse IPv4 de déploiement, utilisée par le pied de page et le nom du journal.
  • Modules/Logging.psm1 : initialisation et écriture des journaux. L’adresse IPv4 détectée lui est transmise par le script principal.
  • Modules/Partitioning.psm1 : découverte et validation des profils de partitionnement déclarés dans Partitioning/Profiles/*.psd1.

Profils de partitionnement

Les fichiers PSD1 de Partitioning/Profiles décrivent les schémas de partitionnement comme des données, sans exécuter de code contenu dans les profils. Le profil par défaut « UEFI / GPT — WinRE avant C: » crée EFI (300 Mo), MSR (16 Mo), WinRE (taille de winre.wim plus 250 Mo libres), puis Windows sur l’espace restant. Le profil « UEFI / GPT — WinRE, C: et D: » demande la taille de C: et attribue le reste à D:, dans l’ordre physique C: puis D:. Les propriétés de taille déclarées dans le profil alimentent un formulaire générique. Le profil fournit une estimation de la capacité disponible avec une réserve WinRE de 1 Go ; le calcul effectif de WinRE et l’exécution DiskPart ne sont pas encore implémentés.

Historique des changements

2026-10-15

  • Les anciens exports de HardwareInfo.ps1 ont d’abord été déplacés sous %TEMP%\DeployCenter, puis retirés au profit du seul inventaire consolidé décrit ci-dessous.
  • L’affichage des disques a d’abord utilisé InterfaceType, puis a été corrigé pour afficher BusType obtenu par Get-Disk.
  • Le module VNC réutilise l’adresse IPv4 détectée au démarrage ; la détection réseau n’est plus relancée lors du démarrage de VNC.
  • Les messages d’information et d’erreur utilisent maintenant Show-DeployCenterMessage dans Modules/UI.psm1, avec la palette active, au lieu des boîtes de dialogue natives de Windows.
  • Les erreurs de démarrage VNC indiquent maintenant l’étape concernée pour distinguer les échecs de nettoyage, de copie, de pare-feu et de lancement.
  • La sortie de wpeutil DisableFirewall et son code de retour sont consignés dans le journal DeployCenter au lieu d’apparaître dans la console PowerShell.
  • Le libellé de statut de la fenêtre Sources Windows est remonté et sa hauteur réduite pour mieux le séparer du pied de page.
  • L’inventaire matériel, l’adresse IP et les informations VNC sont réunis dans %TEMP%\DeployCenter\DeployCenter_Inventory.json. Les exports distincts HardwareInfo.json, hardware.json et hardware.log ne sont plus générés.
  • Les anciens fichiers temporaires peuvent rester jusqu’au redémarrage de WinPE, qui vide %TEMP%.
  • La collecte complète des disques utilise maintenant Get-Disk : numéro, nom, taille, type de bus, état opérationnel et état de santé. Win32_DiskDrive n’est plus utilisé pour l’inventaire des disques.
  • La détection IPv4 de Modules/Network.psm1 utilise les API .NET System.Net.NetworkInformation au lieu de Get-CimInstance Win32_NetworkAdapterConfiguration ; la priorité aux interfaces avec passerelle et les exclusions d’adresses restent en place.
  • Ajout du chargement et de la validation de profils de partitionnement PSD1, ainsi que d’un sélecteur dans l’interface. Le profil UEFI/GPT place EFI, MSR et WinRE avant Windows, qui reçoit l’espace restant ; aucun script DiskPart n’est exécuté à cette étape.
  • Ajout du BOM UTF-8 aux nouveaux fichiers PowerShell et PSD1 pour préserver les caractères accentués lors de leur lecture par Windows PowerShell 5.1.
  • Correction de l’apostrophe dans la description du profil UEFI/GPT, qui empêchait le chargement du fichier PSD1.
  • Ajout du profil UEFI/GPT avec C: et D:. Les politiques de taille du PSD1 pilotent un formulaire générique : saisie de C: et calcul de D: comme espace restant estimé. Le profil place C: avant D:.
  • Correction d’une syntaxe PowerShell incompatible dans les filtres de politique de taille du profil, qui empêchait le lancement du script.
  • Correction du message de sélection du disque : son apostrophe typographique fermait prématurément une chaîne PowerShell et bloquait l’analyse du script.
  • Correction du placement d’un libellé du formulaire C:/D: : l’expression de coordonnées était interprétée comme un troisième argument du constructeur Point. Le profil PSD1 reçoit un BOM UTF-8 et utilise des guillemets doubles autour de sa description, qui contient une apostrophe typographique.
  • Le formulaire du profil C:/D: recalcule D: pendant la saisie de C: et accepte désormais une taille minimale de 40 Go pour C:.
  • Réorganisation de la première page : sélection du disque, du système, du profil et du nom d’hôte dans le panneau de préparation ; le journal est accessible dans une fenêtre dédiée depuis la barre d’actions. Les nouveaux contrôles et la fenêtre du journal sont construits dans UI.psm1 et suivent le thème actif.
  • Intégration du nouveau panneau de préparation dans la fenêtre principale : le profil est activé après la sélection d’une édition Windows, et le journal est ouvert depuis le bouton placé à gauche des actions principales.
  • Le journal reste alimenté par Logging.psm1 ; UI.psm1 fournit uniquement sa fenêtre thémée et son contrôle d’affichage.
  • Le libellé du système sélectionné conserve la couleur de statut du thème et tronque les chemins longs sans déformer le panneau.
  • Le constructeur de ComboBox accepte une collection vide à l’initialisation du sélecteur de disque, ensuite alimentée par l’inventaire matériel.
  • Le champ du nom d’hôte est dimensionné pour un nom NetBIOS et limite la saisie à 15 caractères.
  • Le champ du nom d’hôte est aligné à droite du panneau avec un espacement réservé après son libellé afin d’éviter tout chevauchement.
  • Dans Sources Windows, le double-clic sur une ligne sélectionnée lance aussi l’affichage des éditions, comme le bouton dédié.
  • Après validation d’une édition Windows, la fenêtre Sources Windows se ferme pour revenir directement à l’écran principal.
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%