Comment créer un service Windows

Comment créer un service Windows

Parfois, vous avez besoin d'une application ou d'un script pour continuer à fonctionner, que vous soyez connecté à votre ordinateur ou non. 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 un processus, un script ou un programme pour fonctionner tant que l'ordinateur est en cours, vous devrez créer un service Windows.

Table des matières

    NSSM peut être utilisé via l'invite de commande 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 qui revient 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 sur le site Web, clone NSSM de GIT ou installer NSSM avec Chocolatey. Chocolatey est un gestionnaire de packages pour Windows. Les méthodes d'installation varieront en fonction de l'itinéraire que vous prenez. Veuillez consulter les instructions de NSSM. Pour notre exemple, nous téléchargeons à partir du site Web du 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 chargement moyen du CPU.

    1. Copier et enregistrer ce script en tant que log-cpuloadpercentage.PS1 à un endroit qui est susceptible d'être accessible par quelqu'un d'autre. Essayez de créer le répertoire C: / scripts Et le stocker là-bas. Créez également un dossier dans les scripts appelés Bûches. Notez que le chemin vers le script est C: / scripts / log-cpuloadpercentage.PS1. Tu auras besoin de ça plus tard.

    Note: Toutes les lignes ci-dessous suivis du symbole # sont des commentaires et n'affecteront pas le script.

    CLS #Optional. J'aime l'utiliser pour effacer le terminal lors des tests. #Pure que vous avez un dossier appelé journaux dans le même répertoire que ce script #Le journal est l'endroit où les enregistrements seront stockés. Start-Transcript -Path "$ psScripTroot \ logs \ log-cpuloadpercentage - $ (get-date -f yyyy-mm-dd).txt "-APPEND # While Loop le maintient en cours d'exécution jusqu'à ce qu'il soit arrêté manuellement pendant que ($ true) #cretes un horodat pour savoir quand la mesure a été prise Pourcentage de charge moyen à ce moment-là, puis attend 5 secondes pour le refaire. $ cpuloadpercent = Get-CIMINSTANCE WIN32_PROCESSOR | MEAVE-OBJECT -PROPERTY LOADPERCENTAGE -SEAUX | SELECT-OBJECT Moyenne; Début-sommeil-Seconds 5 #Solate uniquement la moyenne, donc il n'y a pas un @ moyen = 13 String $ cpuloadpercent = $ cpuloadpercent.#WRITE Moyenne Résultats à l'écran, ou dans ce cas au journal d'écriture "$ Timestamp CPU pourcentage de chargement $ cpuloadpercent" stop transcript
    1. Cela peut être fait dans le Invite de commande Windows ou Powershell. Ouvrez-le en tant qu'administrateur.
    2. Entrez la commande NSSM Installer Logcpuavg et l'exécutez. Le Installateur du service NSSM La fenêtre s'ouvrira.
    1. Cliquez sur le bouton Ellipses à côté du Chemin: champ, accédez à powershell.exe C'est normalement situé à C: \ Windows \ System32 \. Sélectionner PowerShell.exe. Le Chemin: et Répertoire de démarrage: Les champs seront automatiquement peuplés.
    1. Entrez ce qui suit dans le Arguments: champ: -EXECUTUTIONPOLICY BYPASS -NOPROFFILE -FILE «C: \ PathToscript \ Get-Script.PS1 ", où la dernière partie est le chemin vers votre script PowerShell et le nom du script.
    1. Sélectionnez le Détails languette. Entrez ce que vous souhaitez que le service apparaisse comme dans le gestionnaire de services Windows dans le Afficher un nom: champ. Ensuite, entrez ce qu'il fait dans le Description: champ. Le Type de démarrage: peut être défini comme Automatique, Automatique (démarrage retardé), Manuel, ou Désactivé. Pour cet exercice, l'automatique est bon.
    1. Sélectionnez le Se connecter languette. Sélectionner Ce compte: bouton radio et entrez le compte et le mot de passe que le service s'exécutera comme. Vous devrez choisir un compte sous lequel le service s'exécutera. Idéalement, vous aurez un compte Windows créé juste 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é.

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

    1. Lorsque le service est installé, vous verrez le Service «Logcpuavg» installé avec succès! fenêtre. Sélectionner D'ACCORD pour la fermer. Qui conclut l'installation.
    1. Ouvrir le Windows Services Manager et assurez-vous que le service est là.
    1. Exécuter le service pour s'assurer qu'il fonctionnera.
    1. Pour vérifier que ce service est en cours d'exécution, utilisez Explorateur de fichiers pour accéder à l'endroit où le journal est censé être enregistré pour voir s'il existe.

    NSSM-CHECK-LOG.PNG

    Supprimer un service Windows avec NSSM

    Peut-être que vous n'avez plus besoin de surveiller votre chargement de processeur, vous souhaitez donc vous débarrasser du service. Heureusement, NSSM rend cela facile.

    1. Dans le Windows Services Manager, arrêter le service. Faites cela en sélectionnant le Logation moyenne du CPU Service puis en sélectionnant le bouton d'arrêt carré dans la barre d'outils ou le Arrêter le service lien sur le côté gauche.
    1. Ouvrez soit le Invite de commande Windows ou Powershell En tant qu'administrateur.
    2. Entrez la commande NSSM supprimer Logcpuavg et exécuter la commande.
    1. NSSM vous demandera de confirmer. Sélectionner Oui.
    1. Lorsque le service est supprimé, vous verrez le Le service «logcpuavg» a supprimé avec succès! Confirmation. Sélectionner D'ACCORD et tu as fini.

    C'est tout. C'est une bonne idée de vérifier le responsable 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 disparaître.

    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 ont besoin de privilèges différents de l'utilisateur actuel. Si vous n'avez pas besoin de votre application ou de votre script pour faire toutes ces choses, envisagez d'utiliser une tâche planifiée à la place.