Créer un service avec un exécutable

Créer un service avec un exécutable

Avant toutes manipulations pensez à  sauvegarder votre base de registre. Pour plus d’info cliquez ici.

Il peut arriver parfois que vous ayez besoin de mettre un fichier .exe en tant que service afin de faciliter certaines tâches. Voici la procédure pour le faire :

  • PREPARATION :

1. Copiez l’exécutable que vous voulez comme service dans le répertoire de votre choix.

2. Téléchargez les deux fichiers nécessaires pour la création du service .

3. Décompressez le contenu dans C:\Windows\system32 afin qu’ils soient reconnus en ligne de commande. Ouvrez l’invite de commande MS-DOS (démarrer > exécuter > CMD > OK)

  • INSTALLATION :

Etape 1 : Déclaration en tant que service NT grâce à INSTSRV.EXE

Ouvrez un fenêtre de commande (démarrer > exécuter > cmd > OK)

Syntaxe : instsrv [nom_service] [chemin_programme]

Etape 2 : Vérifiez que le service a bien été ajouté en consultant la liste des services (démarrer > exécuter > services.msc > OK)

Etape 3 : Modification du chemin “ImagePath” dans le registre:

1. Ouvrez l’entrée de la base de registre (démarrer > exécuter > regedit > OK)

2. Placez vous dans l’arborescence HKLM\SYSTEM\CurrentControlSet\Services\[nom de l’exécutable] .

Modifier la valeur de l’entrée “ImagePath” en C:\windows\system32\srvany.exe
(Elle doit être le chemin complet vers SRVANY.EXE (pensez à ajouter des guillemets si votre chemin contient des espaces)
Le service est désormais créé. Cependant si vous essayez de le démarrer maintenant vous recevrez un message d’erreur, ce qui est tout à fait normal.

Dans l’étape suivante nous allons indiquer où ce situe notre application, pour que lorsque le SCM lance SRVANY, ce dernier trouve notre application et le démarre correctement.

Etape 4 : Ajout d’une clé “Parameters”:

  1. Naviguez jusqu’à la clé du service que vous venez de déclarer, ici : HKLM\SYSTEM\CurrentControlSet\Services\[nom de l’exécutable]
  2. Créez une clé “Parameters” (Edition > Nouveau > Clé)

Etape 5 : Ajout d’une valeur “Application”:

1. Ouvrez la clé “Parameters”

2. Créez une clé “Application” de type chaîne (REG_SZ) dans la clé “Parameters” (Clic Droit \ Edition > Nouveau > Valeur > Chaine)

3. Editez “Application” et déclarez-y le chemin complet vers notre exécutable. Si vous avez suivi nos pré-requis ce chemin est “C:\[nom de l’exécutable]”.

Etape 6 : Interagir avec le bureau :
Une fois le service lancé il est exécuté en arrière plan, de manière transparente. Afin de contrôler le lancement de votre service je vous invite à activer cette option la première fois. Le programme exécuté en tant que service apparaîtra ainsi de la même façon que si vous le lanciez manuellement en tant que simple programme.

1. Retournez dans la console de services (démarrer > exécuter > services.msc > OK)

2. Double-cliquez sur le service en question.

3. Cliquez sur l’onglet “Connexion”

4. Cochez l’option ”Autoriser le service à interagir avec le bureau” :

5. Validez avec le bouton “OK »

6. Redémarrez le PC.

 

Commentaires : 10

  1. bumpyx dit :

    Testé et approuvé – nice work boy !

  2. Vincent1184 dit :

    Salut, j’ai suivi la procédure mais j’ai un message d’erreur: Error 5: Access is denied

    pourtant je suis admin de la machine.

  3. Loko dit :

    Bonjour

    J’ai voulu effectuer cette installation, mais je n’ai pas d’entrée HKLM\SYSTEM\CurrentControlSet\Services dans mon Windows Server 2008.

    J’ai cherché imagepath, sans succès non plus.

    Où cela peut il se cacher ?

  4. cedJohns dit :

    Super boulot, vraiment un grand merci pour cette procédure claire et efficace !

  5. Curieux dit :

    Hello
    Je trouve cela très intéressant, un grand merci.

    Et pour windows server 2012 standard edition est-ce aussi valable ?

  6. Iceman088 dit :

    @ Curieux : Cela ne fonctionne plus pour 2012, je viens d’en faire l’expérience.

    Du coup, je recherche une alternative.

  7. rem-s dit :

    @Iceman088 Merci pour cette réponse !

  8. Syst4 dit :

    Idem chez moi. Ca ne démarre pas le service sous WS2012 🙁

    Quelqu’un a-t il une solution ?

  9. david dit :

    Je déterre un peu le post. Vous faites comment avec Windows 2012 car ça ne marche pas pour moi alors que sur version 2003 pas de soucis.

Ajoutez votre commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.