
Pendant plus de dix ans, Microsoft Deployment Toolkit (MDT) a été l’une des solutions les plus populaires pour automatiser le déploiement de Windows. De nombreuses entreprises continuent de l’utiliser aujourd’hui, mais son développement est désormais au point mort et son architecture commence à montrer ses limites face aux besoins actuels.
C’est dans ce contexte qu’est né PSWinDeploy, un projet développé entièrement en PowerShell dont l’objectif est de proposer une solution moderne, simple à maintenir et adaptée aux infrastructures actuelles.
github.com/rdrouche/PSWinDeploy
Pourquoi créer une alternative à MDT ?
MDT reste une excellente solution pour automatiser l’installation de Windows. Cependant, plusieurs constats reviennent régulièrement chez les administrateurs système :
- absence d’évolution significative depuis plusieurs années ;
- dépendance à des composants historiques ;
- personnalisation parfois complexe ;
- difficulté à intégrer les déploiements dans des processus DevOps modernes ;
- stockage d’une partie de la configuration dans des formats peu adaptés au versionning.
- arrêt par Microsoft
L’idée derrière PSWinDeploy n’est pas de reproduire MDT à l’identique, mais de conserver ce qui fonctionne tout en simplifiant son architecture.
Une philosophie : tout miser sur PowerShell
L’un des principes fondateurs du projet est de limiter les dépendances au maximum.
PSWinDeploy fonctionne entièrement avec PowerShell 5.1, disponible nativement sur Windows. Aucun runtime supplémentaire n’est nécessaire.
Les configurations utilisent des fichiers .psd1, facilement lisibles, versionnables avec Git et modifiables sans outils propriétaires.
Les ressources (images, pilotes, scripts ou applications) sont simplement stockées sur des partages SMB, évitant la mise en place d’une infrastructure complexe.
Un déploiement découpé en deux phases
Contrairement à de nombreuses solutions qui enchaînent toutes les opérations dans un seul processus, PSWinDeploy distingue clairement deux étapes.
Phase 1 : WinPE
Cette première étape prépare entièrement la machine.
Elle prend en charge notamment :
- la sélection du disque ;
- le partitionnement ;
- le formatage ;
- l’application de l’image Windows (WIM) ;
- l’injection des pilotes ;
- la préparation de la phase suivante.
Une fois ces opérations terminées, la machine redémarre sous Windows.



Phase 2 : post-installation
Après le premier démarrage, un moteur de séquences prend le relais.
Chaque déploiement est piloté par une séquence PowerShell pouvant contenir des étapes telles que :
- attente de la disponibilité du réseau ;
- jonction au domaine Active Directory ;
- installation des mises à jour Windows ;
- déploiement des logiciels ;
- exécution de scripts personnalisés ;
- affichage d’un assistant interactif si nécessaire.
Cette approche facilite le débogage tout en rendant les déploiements beaucoup plus modulaires.
Une interface web pour superviser les déploiements
PSWinDeploy ne se limite pas aux scripts PowerShell.
Le projet comprend également une interface web, exécutée dans un conteneur Docker, permettant de superviser l’ensemble des déploiements.
Depuis cette interface, il est possible de :
- suivre les déploiements en temps réel ;
- consulter des statistiques détaillées ;
- gérer un catalogue d’applications ;
- visualiser et modifier les séquences de post-installation ;
- parcourir les scripts et les pilotes disponibles.
Toutes les informations proviennent d’une API REST développée avec Pode, qui centralise les données et les événements remontés par les postes en cours de déploiement.



Une architecture pensée pour être simple
L’objectif de PSWinDeploy est de rester compréhensible.
Chaque composant possède un rôle bien défini :
- une console d’administration PowerShell ;
- une API REST ;
- une interface web ;
- un moteur de séquences ;
- un système de gestion des secrets ;
- des fichiers de configuration lisibles.
Cette séparation permet de faire évoluer le projet plus facilement tout en simplifiant sa maintenance.
La sécurité n’a pas été oubliée
Même si le projet privilégie la simplicité, plusieurs mécanismes de sécurité sont déjà intégrés.
Les secrets peuvent être stockés dans un coffre sécurisé, les communications avec l’API sont protégées par un système de jetons d’authentification et l’interface web ne transmet jamais les informations sensibles au navigateur.
Il est également possible d’activer HTTPS pour sécuriser les échanges entre les différents composants.
Un projet toujours en évolution
PSWinDeploy est aujourd’hui pleinement fonctionnel et utilisé dans des environnements de test.
Le développement reste toutefois très actif. Plusieurs fonctionnalités sont déjà prévues pour les prochaines versions, notamment :
- une gestion encore plus avancée des séquences ;
- davantage d’options de personnalisation depuis l’interface web ;
- l’internationalisation du projet.
L’objectif est de proposer progressivement une solution capable de remplacer MDT dans de nombreux scénarios tout en restant fidèle à une philosophie simple : des fichiers lisibles, du PowerShell natif et une architecture ouverte.
Conclusion
Le déploiement de Windows évolue, tout comme les attentes des administrateurs système. Les besoins actuels dépassent souvent le simple déploiement d’une image système : automatisation, suivi en temps réel, intégration avec Git, interfaces web et architectures facilement maintenables deviennent des critères essentiels.
PSWinDeploy s’inscrit dans cette démarche en proposant une approche moderne, entièrement basée sur PowerShell, tout en conservant la souplesse qui a fait le succès de MDT.
Le projet est encore jeune, mais il pose déjà les bases d’une solution de déploiement Windows pensée pour les infrastructures d’aujourd’hui et de demain.