Comment créer un service Windows

Parfois, vous avez besoin d’une application ou d’un script pour continuer à fonctionner, que vous soyez connecté ou non à votre ordinateur. C’est peut-être un script PowerShell pour surveiller les ports ou un serveur Web hébergeant une page sur votre réseau domestique.

Le fait est que si vous voulez qu’un processus, un script ou un programme s’exécute tant que l’ordinateur est allumé, vous devrez créer un Service Windows.

Comment creer un service Windows

De quoi ai-je besoin pour créer un service Windows?

Pour créer un service Windows dans Windows 10, il existe quelques prérequis:

  • Accès administrateur sur l’ordinateur
  • Quelque chose à exécuter en tant que service (PowerShell Script, programme, etc.)
  • Non-Sucking Service Manager (NSSM) installé

Qu’est-ce que le gestionnaire de service sans succion?

Oui, vous ne pouvez pas laisser tomber un nom comme celui-là sans l’expliquer. Bien sûr, le nom est malheureux, mais il est exact. Le gestionnaire de service sans succion (NSSM) est sans doute le moyen le plus simple de créer un service Windows à la fois hautement fiable et configurable. De plus, c’est un logiciel gratuit et Open Source (OSS).

Comment creer un service Windows

NSSM peut être utilisé via le Invite de commandes Windows, ou une interface utilisateur graphique (GUI). Cela signifie que n’importe qui peut l’utiliser. NSSM peut être utilisé sur n’importe quelle version de Windows depuis et y compris Windows 2000. Il existe des versions 32 bits et 64 bits. Si vous utilisez un ordinateur 64 bits, essayez d’abord cette version. Si cela ne fonctionne pas, revenez à la version 32 bits.

Vous pouvez télécharger NSSM depuis le site Web, cloner NSSM depuis Git, ou installer NSSM avec Chocolatey. Chocolatey est un gestionnaire de packages pour Windows. Les méthodes d’installation varient en fonction de l’itinéraire que vous empruntez. Veuillez consulter les instructions du NSSM. Pour notre exemple, nous téléchargeons à partir du site Web NSSM et l’installons dans C: WINDOWS system32.

Créer un service Windows avec NSSM

Pour cet exemple, nous allons créer un service à partir d’un script PowerShell pour enregistrer le pourcentage de charge moyenne du processeur.

  1. Copiez et enregistrez ce script sous log-CPULoadPercentage.ps1 à un endroit auquel personne d’autre ne peut accéder. Essayez de créer le répertoire C: / Scripts et le stocker là-bas. Créez également un dossier dans les scripts appelé Journaux. Notez que le chemin d’accès au script est C: /Scripts/log-CPULoadPercentage.ps1. Vous en aurez besoin plus tard.

Remarque: Toutes les lignes ci-dessous suivies du symbole # sont des commentaires et n’affecteront pas le script.

CLS #Optional. I like to use this to clear the terminal when testing.

#Make sure you have a folder called Logs in the same directory as this script
#The log is where the records will be stored.
Start-Transcript -Path "$PSScriptRootLogslog-CPULoadPercentage-$(get-date -f yyyy-MM-dd).txt" -Append

#While loop keeps it running until manually stopped
While ($True){
     #Creates a timestamp to know when the measurement was taken
     $timeStamp = get-date -f yyyy-MM-h:mm:ss

     #Gets the average load percentage at that time, then waits 5 seconds to do it again.
     $cpuLoadPercent = Get-CimInstance win32_processor | Measure-Object -Property LoadPercentage -Average | Select-Object Average;Start-Sleep -Seconds 5

     #Isolates just the average so there isn't a weird @{Average=13} string
     $cpuLoadPercent = $cpuLoadPercent.Average

     #writes results to screen, or in this case to the log
     Write-Host "$timeStamp CPU Load Percentage $cpuLoadPercent"
}

Stop-Transcript
  1. Cela peut être fait dans le Invite de commandes Windows ou PowerShell. Ouvrez-le en tant qu’administrateur.
  2. Entrez la commande nssm install logCPUAvg et exécutez-le. le Installateur de service NSSM la fenêtre s’ouvrira.
1608225896 760 Comment creer un service Windows
  1. Cliquez sur le bouton points de suspension à côté du Chemin: champ, accédez au powershell.exe qui est normalement situé à C: Windows System32 . Sélectionnez powershell.exe. le Chemin: et Répertoire de démarrage: les champs seront automatiquement remplis.
1608225897 61 Comment creer un service Windows
  1. Entrez ce qui suit dans le Arguments: champ: -ExecutionPolicy Bypass -NoProfile -File “C: PathToScript get-Script.ps1”, où la dernière partie est le chemin d’accès à votre script PowerShell et le nom du script.
1608225897 765 Comment creer un service Windows
  1. Sélectionnez le Détails languette. Entrez ce que vous souhaitez que le service apparaisse dans le gestionnaire de services Windows dans le Afficher un nom: champ. Ensuite, entrez ce qu’il fait dans le La description: champ. le Type de démarrage: peut être défini comme Automatique, Automatique (démarrage différé), Manuel, ou désactivé. Pour cet exercice, Automatic est bon.
1608225897 160 Comment creer un service Windows
  1. Sélectionnez le Se connecter languette. Sélectionner Ce compte: bouton radio et entrez le compte et le mot de passe sous lesquels le service fonctionnera. Vous devrez choisir un compte sous lequel le service sera exécuté. Idéalement, vous aurez un compte Windows créé uniquement pour exécuter ce service. Les autorisations de ce compte doivent être limitées à ce que le service doit faire. Vous pouvez choisir le Compte système local, mais ce n’est pas recommandé pour des raisons de sécurité.
1608225897 186 Comment creer un service Windows

Il existe plusieurs autres onglets qui peuvent être utilisés pour personnaliser le service. Pour cet exercice, les valeurs par défaut de ces onglets sont suffisantes. Sélectionnez le Installer le service bouton.

  1. Lorsque le service est installé, vous verrez le Le service «logCPUAvg» a été installé avec succès! la fenêtre. Sélectionner D’accord pour la fermer. Cela conclut l’installation.
1608225897 219 Comment creer un service Windows
  1. Ouvrez le Gestionnaire de services Windows et assurez-vous que le service est là.
1608225898 891 Comment creer un service Windows
  1. Exécutez le service pour vous assurer qu’il fonctionnera.
1608225898 379 Comment creer un service Windows
  1. Pour vérifier que ce service est en cours d’exécution, utilisez Explorateur de fichiers pour naviguer jusqu’à l’endroit où le journal est censé être enregistré pour voir s’il existe.
1608225898 841 Comment creer un service Windows

nssm-check-log.png

Suppression d’un service Windows avec NSSM

Peut-être que vous n’avez plus besoin de surveiller la charge de votre processeur, vous aimeriez donc vous débarrasser du service. Heureusement, NSSM rend cela facile.

  1. dans le Gestionnaire de services Windows, arrêtez le service. Pour ce faire, sélectionnez le Journal de la charge moyenne du processeur service puis en sélectionnant le bouton d’arrêt carré dans la barre d’outils ou Arrêtez le service lien sur le côté gauche.
1608225898 809 Comment creer un service Windows
  1. Ouvrez soit le Invite de commandes Windows ou PowerShell en tant qu’administrateur.
  2. Entrez la commande nssm supprimer logCPUAvg et exécutez la commande.
1608225898 806 Comment creer un service Windows
  1. NSSM vous demandera de confirmer. Sélectionner Oui.
1608225898 777 Comment creer un service Windows
  1. Lorsque le service est supprimé, vous verrez le Le service «logCPUAvg» a été supprimé avec succès! Confirmation. Sélectionner D’accord et tu as fini.
1608225899 274 Comment creer un service Windows

C’est tout. C’est une bonne idée de vérifier le gestionnaire des services pour s’assurer que le service n’est plus là. Si vous voyez toujours le service, vous devrez peut-être actualiser l’écran et il devrait avoir disparu.

Les services sont un excellent moyen d’exécuter des applications ou des scripts qui doivent s’exécuter tout le temps, se redémarrer s’ils échouent ou avoir besoin de privilèges différents de ceux de l’utilisateur actuel. Si vous n’avez pas besoin de votre application ou de votre script pour faire toutes ces choses, envisagez plutôt d’utiliser une tâche planifiée.