Question fréquemment posée

Comment exécuter tout programme en tant que service d'arrière-plan dans Windows
Dernière mise à jour il y a 3 ans



image

Si vous êtes comme la plupart des utilisateurs de Windows, vous disposez de nombreux petits utilitaires qui s'exécutent au démarrage de Windows. Bien que cela fonctionne parfaitement pour la plupart des applications, il y en a certaines qui pourraient être lancées avant même que l'utilisateur ne se connecte au PC. Pour ce faire, vous devez exécuter l'application en tant que service Windows.

Les services Windows sont une catégorie spéciale de programmes configurés pour être lancés et exécutés en arrière-plan, généralement sans aucune sorte d'interface utilisateur et sans qu'un utilisateur ait besoin de se connecter au PC. Beaucoup de joueurs et d'utilisateurs expérimentés les connaissent comme ces choses que vous aviez l'habitude de désactiver pour aider à accélérer votre système, bien que cela ne soit plus vraiment nécessaire.

Le principal avantage de l'exécution d'une application en tant que service est que vous pouvez faire en sorte que le programme démarre avant que l'utilisateur ne se connecte. Cela peut être particulièrement important pour les applications qui fournissent des services importants que vous souhaitez voir disponibles lorsque vous êtes loin de votre ordinateur.

FAQ RELATIF :Comprendre et gérer les services Windows

Avant de commencer, vous devez être conscient de quelques réserves importantes concernant l'exécution d'une application en tant que service :

  • L'application ne placera pas d'icône dans la barre d'état système. Si vous avez besoin de l'interface disponible régulièrement pour une application, celle-ci n'est peut-être pas la mieux adaptée pour être exécutée en tant que service.
  • Lorsque vous devez effectuer des changements de configuration ou des mises à jour, vous devez arrêter le service, exécuter le programme comme une application normale, faire ce que vous devez faire, arrêter le programme, puis relancer le service.
  • Si le programme est déjà configuré pour s'exécuter au démarrage de Windows, vous devrez le désactiver afin de ne pas vous retrouver avec deux instances en cours d'exécution. La plupart des programmes disposent d'une option dans l'interface permettant de modifier ce paramètre. D'autres peuvent s'ajouter à votre dossier de démarrage, ce qui vous permet de les supprimer.

Première étape : installer SrvStart

Pour exécuter une application en tant que service, vous allez avoir besoin d'un petit utilitaire tiers. Il en existe plusieurs, mais notre préféré est SrvStart. Il a été conçu à l'origine pour Windows NT, et fonctionnera avec à peu près toutes les versions de Windows à partir de Windows XP.

Pour commencer, allez sur la page de téléchargement de SrvStart et prenez l'utilitaire. Le téléchargement ne contient que quatre fichiers (deux DLL et deux EXE). Il n'y a pas de programme d'installation ; copiez-les dans le dossier C:\Windows de votre ordinateur ou dans votre dossier Windows principal pour "installer" SrvStart.


image

Nous allons également supposer que vous avez déjà installé et configuré le programme que vous allez transformer en service, mais si ce n'est pas le cas, c'est le moment de le faire.

Deuxième étape : créer un fichier de configuration pour le nouveau service

Ensuite, il faut créer un fichier de configuration que SrvStart lira pour créer le service. Il y a beaucoup de choses que vous pouvez faire avec SrvStart, et vous pouvez lire tous les détails sur toutes les options de configuration sur la page de documentation. Pour cet exemple, nous n'allons utiliser que deux commandes : startup, qui spécifie le programme à lancer, et shutdown_method, qui indique à SrvStart comment fermer le programme lorsque le service respectif est arrêté.

Lancez le Bloc-notes et créez votre fichier de configuration en utilisant le format ci-dessous. Ici, nous utilisons Plex, mais vous pouvez créer un fichier pour tout programme que vous souhaitez exécuter en tant que service. La commande startup spécifie simplement le chemin où se trouve le fichier exécutable. Pour la commande shutdown_method, nous utilisons le paramètre winmessage, qui fait que SrvStart envoie un message de fermeture de Windows à toutes les fenêtres ouvertes par le service. Par exemple: 

[Plex]
startup="C:\Program Files (x86)\Plex\Plex Media Server\Plex Media Server.exe"
shutdown_method=winmessage
Bien entendu, adaptez le chemin et le nom en fonction du programme que vous lancez.
image

Enregistrez le nouveau fichier de configuration où vous voulez, et remplacez l'extension .txt par une extension .ini. Notez le nom du fichier, car nous en aurons besoin à l'étape suivante. Pour faciliter la saisie dans l'invite de commande, nous vous suggérons d'enregistrer temporairement ce fichier sur votre lecteur C:.

Troisième étape : Utiliser l'invite de commande pour créer le nouveau service

L'étape suivante consiste à utiliser la commande Windows Service Controller (SC) pour créer le nouveau service en fonction des critères de votre fichier de configuration. Ouvrez Command Prompt en cliquant avec le bouton droit de la souris sur le menu Démarrer (ou en appuyant sur Windows+X), en choisissant "Command Prompt (Admin)", puis en cliquant sur Oui pour l'autoriser à s'exécuter avec des privilèges d'administration.

image

Dans l'invite de commande, utilisez la syntaxe suivante pour créer le nouveau service :

SC CREATE  Displayname= "" binpath= "srvstart.exe  -c " start= 
Il y a deux choses à noter dans cette commande. Premièrement, chaque signe égal (=) est suivi d'un espace. C'est obligatoire. Ensuite, la valeur est entièrement à votre discrétion. Et, enfin, pour la valeur, vous voudrez utiliser auto pour que le service démarre automatiquement avec Windows.

Ainsi, dans notre exemple de Plex, la commande ressemblerait à ceci :
SC CREATE Plex Displayname= "Plex" binpath= "srvstart.exe Plex -c C:PlexService.ini" start= auto

Oui, vous avez bien lu : j'ai utilisé C:PlexService.ini au lieu de C\:PlexService.ini. La commande vous demande de supprimer la barre oblique.

Lorsque vous exécutez la commande, vous devriez recevoir un message SUCCESS si tout se passe bien.

image

À partir de ce moment, votre nouveau service s'exécutera à chaque fois que Windows démarrera. Si vous ouvrez l'interface des services Windows (cliquez simplement sur Démarrer et tapez "Services"), vous pouvez trouver et configurer le nouveau service comme n'importe quel autre.

image

Et c'est tout ce qu'il y a à faire. Si vous avez des applications qui démarrent avec Windows et que vous préférez qu'elles démarrent sans qu'un utilisateur ait besoin de se connecter, il est assez facile de transformer n'importe quelle application en service. Nous n'avons fait qu'effleurer la méthode de base pour créer et faire fonctionner un nouveau service, mais il y a beaucoup d'autres choses que vous pouvez faire avec SrvStart pour affiner le fonctionnement d'un service. N'hésitez pas à consulter la documentation si vous souhaitez en savoir plus.

Veuillez patienter!

S'il vous plaît patienter... il faudra une seconde !