Transformer un script PowerShell en service Windows (ps1 en service)
Comme on le sait, PowerShell excelle dans le domaine de l'administration. Cependant, il arrive qu'il soit nécessaire d'exécuter un script ps1 comme un service. Puisque PowerShell a été initialement conçu comme un outil d'automatisation et de gestion système, il ne peut pas fonctionner nativement en mode Service (PowerShell en Service).
Cette limitation peut être frustrante lorsque vous avez besoin d'un script de surveillance en arrière-plan, d'une tâche de nettoyage automatisée ou de tout processus PowerShell de longue durée sur Windows Server 2025 — en particulier dans des environnements de production où l'on s'attend à ce que les services démarrent automatiquement et survivent aux déconnexions des utilisateurs.
Heureusement, ce problème peut être résolu en utilisant des outils tiers qui permettent d'exécuter n'importe quel exécutable (ou script) comme un service Windows.
Outils pour exécuter des fichiers EXE comme services Windows
Il existe de nombreuses utilitaires capables de convertir un fichier exécutable en service Windows, notamment :
- AlwaysUp
- NSSM (Non-Sucking Service Manager)
- WinSW
- SrvStart
- EXE Service
Dans cet article, nous utiliserons EXE Service, car il fournit déjà un exemple de configuration prêt à l'emploi pour PowerShell et offre à la fois une interface graphique et une prise en charge en ligne de commande.
Exécuter un script PowerShell comme service Windows
Étape 1 : Ouvrir EXE Service
Après l'installation d'EXE Service, un raccourci apparaîtra sur votre bureau.
L'interface graphique est uniquement destinée à faciliter la création du service.
Si vous travaillez sur un Windows Server sans interface graphique, vous avez deux options :
- Créer le service sur un PC classique puis le transférer sur le serveur
- Exécuter EXE Service directement sur le serveur en utilisant la ligne de commande
Étape 2 : Créer un nouveau service
EXE Service inclut déjà un exemple prêt à l'emploi pour PowerShell en Service.
Il suffit de cliquer sur le bouton "Créer à partir d'un exemple".

Étape 3 : Configurer le chemin vers votre fichier .ps1
Dans la fenêtre qui s'affiche, vous devez spécifier les chemins corrects :
- Chemin de l'exécutable :
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe - Répertoire de travail :
Spécifiez le dossier où se trouve votre fichier de script - Arguments :
-ExecutionPolicy Bypass -File "C:\Chemin\Vers\Votre\Script.ps1"
Assurez-vous que les chemins correspondent à votre installation PowerShell réelle et à l'emplacement de votre script.

Étape 4 : Enregistrer et démarrer le service
Cliquez sur "Créer le service" pour créer le service Windows.
Si vous souhaitez que le service s'exécute immédiatement sur cet ordinateur, cliquez sur "Démarrer".
Après cela, votre script PowerShell :
- S'exécutera comme un service Windows
- Démarrera automatiquement avec le système
- Survivra aux déconnexions des utilisateurs et aux changements de session
- Pourra être géré via le gestionnaire de services Windows (
services.msc)
Transférer le service vers un autre serveur
Si vous prévoyez de déplacer la configuration du service vers un autre Windows Server, suivez les instructions officielles de transfert d'EXE Service fournies dans leur documentation.
Cette approche est particulièrement utile lors du déploiement de configurations identiques sur plusieurs serveurs.
Conclusion
PowerShell n'a pas été conçu comme un service — mais des outils comme EXE Service résolvent cela proprement. Enveloppez votre script .ps1, et il démarrera au démarrage, survivra aux déconnexions et s'intégrera parfaitement avec services.msc. Pas de solutions de contournement compliquées, pas de bidouillage avec des tâches planifiées. Juste une solution simple et prête pour les administrateurs.