Architecture¶
PSWinDeploy est découpé en trois couches indépendantes afin que chacune puisse tourner sur l'hôte le plus adapté.
Vue d'ensemble¶
PSWinDeploy/
├── PSWinDeploy.psd1 Configuration globale
├── Modules/
│ ├── Config/ Chargeur de config central
│ ├── WinPE-Builder/ Construction WinPE (amd64/arm64) — Étape 1
│ ├── WIM-Manager/ Gestion des images WIM — Étape 2
│ ├── TaskSequence/ Moteur de séquences JSON — Étape 3
│ ├── DiskSelector/ Assistant disque console (WinPE) — Étape 3
│ ├── ProfileManager/ Profils, autologon, sécurité — Étape 4
│ └── Notify/ Notifications SMTP + Teams
├── API/
│ └── Deploy-API.ps1 Serveur Pode REST (Windows)
├── Web/ Front React + Vite (Docker) — Étape 5
│ └── Dockerfile
├── Profiles/ Profils de déploiement (*.json)
├── Catalogue/
│ └── catalogue.json Applications et scripts disponibles
├── Sequences/
│ └── *.json Séquences de déploiement
├── Scripts/
│ ├── Start-Deploy.ps1 Point d'entrée WinPE
│ └── startnet.cmd
└── docker-compose.yml
Les trois couches¶
1. Interface Web (Docker / Linux, port 3000)¶
Une application React + Vite en single-page app. Elle ne parle qu'à l'API REST en HTTP/JSON — elle ne touche jamais directement aux partages Windows, aux fichiers WIM ou à PowerShell. C'est ce qui lui permet de tourner dans un conteneur Linux pendant que le reste de la chaîne vit sur Windows.
Pages : sélection de profil, catalogue, déploiement en cours (logs en direct), historique/logs, éditeur de séquences, paramètres.
2. API REST (Windows, port 8080)¶
Deploy-API.ps1, construite sur le framework web PowerShell Pode. Elle expose le moteur de déploiement (profils, catalogue, images WIM, séquences) sous forme d'endpoints JSON et résout une séquence runtime à partir d'un profil + des applications sélectionnées.
3. Moteur de déploiement (Windows / WinPE)¶
Les modules PowerShell qui font le travail réel : construction de l'image WinPE, application du WIM, exécution de la séquence de tâches JSON (partitionnement disque, jonction domaine, mises à jour, installation logicielle, scripts personnalisés), gestion des reboots, envoi des notifications.
Flux de déploiement¶
- L'opérateur choisit un profil dans l'interface web, sélectionne des apps optionnelles du catalogue, lance la préparation.
POST /api/deploy/preparerésout la séquence runtime à partir du profil + apps sélectionnées.- La machine cible boot sur le WinPE (ISO/PXE) →
Start-Deploy.ps1. - Étape WinPE :
FormatDisk+ApplyWIM+ configuration de l'autologon. - Reboot → premier démarrage Windows (compte temporaire
deploy-temp). - Les étapes de la séquence s'exécutent :
JoinDomain→Updates→Software→Scriptspersonnalisés. - Les reboots intermédiaires reprennent automatiquement via
RunOnce. - Fin :
Set-LocalAdminPassword+Invoke-DeployCleanup, notification envoyée.
Architectures WinPE supportées
Depuis Windows ADK 2004 (build 19041), le support x86 a été retiré. Seules les architectures amd64 (x64) et arm64 sont disponibles.