Services Windows : installation et désinstallation en ligne de commande avec InstallUtil.exe et résolution des problèmes courants
1. Installer et désinstaller un service Windows en ligne de commande
1. Outil utilisé
Microsoft fournit l’outil InstallUtil.exe pour installer et désinstaller les services Windows .NET.
InstallUtil.exedépend de la version de .NET Framework. L’installation échoue si sa version ne correspond pas au framework cible du projet ;- Copiez la version adaptée de
InstallUtil.exedans le dossier de sortieDebugdu service (au même niveau que l’exécutable du service).
InstallUtil fait partie du SDK .NET ; chaque version du SDK installe une copie différente de cet outil.
.NET Framework 4.0 / 4.5 / 4.6 / 4.7 / 4.8 (le plus utilisé) dispose de versions distinctes 32 bits et 64 bits.
Exemple de chemin pour la version 64 bits : C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe
.NET 5 /.NET 6 /.NET 7 /.NET 8 /.NET 9 (famille .NET Core) ne fournit pas InstallUtil.exe
2. Structure des fichiers (dossier Debug)
WindowsServiceDemo.exe // Exécutable principal du service Windows
WindowsServiceDemo.pdb
InstallUtil.exe // Outil d’installation copié
install.bat // Script d’installation
uninstall.bat // Script de désinstallation
log.txtLangage du code : JavaScript (javascript)
3. Rédiger les scripts batch
install.bat 【Installer le service】
d:
cd D:\WindowsService3\WindowsService3\bin\Debug
InstallUtil WindowsServicePicture.exe
pauseLangage du code : CSS (css)
uninstall.bat 【Désinstaller le service】
d:
cd D:\WindowsService3\WindowsService3\bin\Debug
InstallUtil /u WindowsServicePicture.exe
pause
Explication du paramètre :
/u= uninstall, permet de désinstaller le service
Vous devezexécuter CMD en tant qu’administrateur par le clic droit ou lancer directement le fichier bat avec les droits administrateur. Sans droits suffisants, une exception de sécurité survient : l’installation échoue et est annulée automatiquement.
2. Problèmes fréquents lors de l’installation d’un service Windows et solutions
Synthèse des causes racines
Deux causes principales d’échec d’installation :
- Incompatibilité entre la plateforme de compilation du projet, la version .NET et la version d’InstallUtil.exe ;
- Absence des droits administrateur, ce qui déclenche un blocage de sécurité système.
Exception 1 : BadImageFormatException
Message d’erreur
System.BadImageFormatException : Impossible de charger le fichier ou l’assembly « WindowsServiceDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null » ou l’une de ses dépendances. Tentative de chargement d’un programme au format incorrect.Langage du code : JavaScript (javascript)
Cause
Incompatibilité entre la plateforme cible de compilation(x86/x64/AnyCPU) et le nombre de bits d’InstallUtil.exe, ou version .NET non adaptée.
Solutions
- Configurez le projet pour compiler en
x86; - Utilisez InstallUtil.exe correspondant à la version du framework du projet ;
Exception 2 : SecurityException, erreur de permissions (très fréquente)
Message d’erreur
Une exception s’est produite pendant la phase d’installation.
System.Security.SecurityException : La source n’a pas été trouvée, mais une partie ou la totalité des journaux d’événements n’a pas pu être recherchée. Journaux inaccessibles : Security.
Démarrage de la phase de restauration de l’installation.
L’installation a échoué et la restauration a été effectuée.Langage du code : CSS (css)
Exemple de chemin complet du fichier journal :
H:\SourcesProjet\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.InstallLogLangage du code : CSS (css)
Cause racine
L’invite de commande ou Visual Studio n’est pas exécuté avec les droits administrateur : il ne peut pas lire‑écrire les journaux d’événements système.
Solutions standard
- Visual Studio : cliquez‑droit Exécuter en tant qu’administrateur, ouvrez le projet et recompilez ;
- CMD / script bat : clic droit → Exécuter en tant qu’administrateur ;
- Sélectionnez la plateforme de compilation
x86pour le projet.
Indicateur d’installation réussie
Sortie console :
La phase de validation s’est terminée correctement.
L’installation transactionnelle est terminée.
Ouvrez ensuite la liste des services Windows (services.msc), vous y verrez votre service nouvellement enregistré.
Installation et désinstallation des services