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.

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

Pour créer un service Windows dans Windows 10, il y a 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 non suceur?

    Oui, vous ne pouvez pas supprimer 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, il est gratuit et Logiciels open source (OSS).

    NSSM peut être utilisé via 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 32 bits et 64 bits versions. 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.

    In_content_1 all: [300x250] / dfp: [640x360]->

    Créer un service Windows avec NSSM

    Pour cet exemple, nous allons créer un service à partir d'un Script PowerShell pour vous connecter Pourcentage de charge moyenne du processeur.

    1. Copiez et enregistrez ce script sous le nom log-CPULoadPercentage.ps1dans un emplacement auquel personne d'autre ne pourra probablement accéder. Essayez de créer le répertoire C: / Scriptset de le stocker. 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.
    2. 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 "$PSScriptRoot\Logs\log-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 l 'Invite de commandes Windowsou PowerShell.Ouvrez-le en tant qu'administrateur.
      2. Entrez la commande nssm install logCPUAvget exécutez-la. La fenêtre du programme d'installation du service NSSMs'ouvre.
        1. Cliquez sur le bouton points de suspension à côté du champ Chemin:, accédez à powershell.exequi se trouve normalement dans C: \ Windows \ System32 \. Sélectionnez powershell.exe. Les champs Chemin:et Répertoire de démarrage:seront automatiquement renseignés.
          1. Entrez ce qui suit dans le champ Arguments:: -ExecutionPolicy Bypass -NoProfile -File “C: \ PathToScript \ get-Script.ps1”, où la dernière partie est le chemin à votre script PowerShell et au nom du script.
            1. Sélectionnez l'onglet Détails. Saisissez ce que vous souhaitez que le service apparaisse dans le gestionnaire des services Windows dans le champ Nom d'affichage:. Ensuite, saisissez ce qu'il fait dans le champ Description:. Le type de démarrage:peut être défini sur Automatique, Automatique (démarrage différé), Manuelou Désactivé. Pour cet exercice, l'option Automatique est bonne.
              1. Sélectionnez l'onglet Connexion. Sélectionnez Ce compte: bouton radio et saisissez le compte et le mot de passe sous lesquels le service sera exécuté. 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 il n'est pas recommandé pour des raisons de sécurité.
              2. Plusieurs autres onglets peuvent être utilisés pour personnaliser le un service. Pour cet exercice, les valeurs par défaut de ces onglets sont suffisantes. Sélectionnez le bouton Installer le service.

                1. Une fois le service installé, le service "logCPUAvg" est installé avec succès!fenêtre. Sélectionnez OKpour le fermer. Ceci conclut l'installation.
                  1. Ouvrez le Gestionnaire de services Windowset assurez-vous que le service existe.
                    1. Exécutez le service pour vous assurer qu'il fonctionnera.
                      1. Pour vérifier que ce service est en cours d'exécution, utilisez l 'Explorateur de fichierspour accéder à l'emplacement où le journal est censé être enregistré et voir s'il existe.
                      2. Suppression d'un service Windows Avec NSSM

                        Peut-être que vous n'avez plus besoin de surveillez votre CPU charger, donc vous aimeriez 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 service Consigner la charge moyenne du processeur, puis sélectionnez le bouton d'arrêt carré dans la barre d'outils ou le lien Arrêter le servicesur le côté gauche.
                          1. Ouvrez l 'Invite de commandes Windowsou PowerShellen tant qu'administrateur.
                          2. Entrez la commande nssm remove logCPUAvget exécutez la commande.
                            1. NSSM vous demandera de confirmer. Sélectionnez Oui
                              1. Lorsque le service est supprimé, vous verrez le Service "logCPUAvg "Supprimé avec succès!Confirmation. Sélectionnez OKet vous avez terminé.
                              2. C'est tout. Il est judicieux de vérifier auprès du responsable des services pour vous assurer que le service n’est plus disponible. 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, redémarrer eux-mêmes en cas d'échec , ou ont 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 en utilisant une tâche planifiée.

                                Articles Similaires:


                                12.11.2020