# 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 powershell.exe -ExecutionPolicy Bypass -File .\DeployCenter.ps1 ``` Pour lancer en fenêtre redimensionnable : ```powershell 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. ```ini [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.