Installation et désinstallation des services

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.

  1. InstallUtil.exe dépend de la version de .NET Framework. L’installation échoue si sa version ne correspond pas au framework cible du projet ;
  2. Copiez la version adaptée de InstallUtil.exe dans le dossier de sortie Debug du 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 :

  1. Incompatibilité entre la plateforme de compilation du projet, la version .NET et la version d’InstallUtil.exe ;
  2. 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

  1. Configurez le projet pour compiler en x86 ;
  2. 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 sest produite pendant la phase dinstallation.
System.Security.SecurityException : La source na pas été trouvée, mais une partie ou la totalité des journaux d’événements na pas pu être recherchée. Journaux inaccessibles : Security.

Démarrage de la phase de restauration de linstallation.
Linstallation 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

  1. Visual Studio : cliquez‑droit Exécuter en tant qu’administrateur, ouvrez le projet et recompilez ;
  2. CMD / script bat : clic droit → Exécuter en tant qu’administrateur ;
  3. Sélectionnez la plateforme de compilation x86 pour 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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *