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.
Pour créer un service Windows dans Windows 10, il existe quelques prérequis:
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).
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.
Pour cet exemple, nous allons créer un service à partir d’un script PowerShell pour enregistrer le pourcentage de charge moyenne du processeur.
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
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.
nssm-check-log.png
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.
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.