So erstellen Sie einen Windows -Dienst

So erstellen Sie einen Windows -Dienst

Manchmal benötigen Sie eine App oder ein Skript, um weiter auszuführen, unabhängig davon, ob Sie sich in Ihren Computer angemeldet haben oder nicht. Vielleicht handelt es sich um ein PowerShell -Skript, um Ports oder ein Webserver zu überwachen, das eine Seite in Ihrem Heimnetzwerk hostet.

Der Punkt ist, dass Sie einen Windows -Dienst erstellen müssen.

Inhaltsverzeichnis

    NSSM kann über die Windows -Eingabeaufforderung oder eine grafische Benutzeroberfläche (GUI) verwendet werden. Dies bedeutet, dass jeder es benutzen kann. NSSM kann für jede Version von Windows verwendet werden, die zurück zu Windows 2000 gehen. Es gibt 32-Bit- und 64-Bit-Versionen. Wenn Sie einen 64-Bit-Computer verwenden, probieren Sie diese Version zuerst aus. Wenn es nicht funktioniert, greifen Sie auf die 32-Bit-Version zurück.

    Sie können NSSM von der Website herunterladen, NSSM von Git klonen oder NSSM mit Schokolade installieren. Schokolade ist ein Paketmanager für Windows. Die Installationsmethoden variieren je nachdem, welche Route Sie einnehmen. Bitte konsultieren Sie die Anweisungen von NSSM. Für unser Beispiel laden wir von der NSSM -Website herunter und installieren sie in C: \ Windows \ System32.

    Erstellen Sie einen Windows -Dienst mit NSSM

    In diesem Beispiel erstellen wir einen Dienst aus einem PowerShell -Skript, um die durchschnittliche Lastprozentsatz von CPU zu protokollieren.

    1. Kopieren und speichern Sie dieses Skript als log-cpuloadpercentage.PS1 an einen Ort, an den wahrscheinlich niemand anderes zugegriffen wird. Versuchen Sie das Verzeichnis zu erstellen C:/Skripte und es dort speichern. Erstellen Sie auch einen Ordner in Skripten aufgerufen Protokolle. Beachten Sie, dass der Pfad zum Skript lautet C:/scripts/log-cpuloadpercentage.PS1. Das brauchst du später.

    Notiz: Alle folgenden Zeilen, gefolgt vom Symbol # sind Kommentare und wirken sich nicht auf das Skript aus.

    CLS #Optional. Ich benutze dies gerne, um das Terminal beim Testen zu löschen. #Wake stellen sicher, dass Sie einen Ordner namens Protokolle im selben Verzeichnis haben, wie in diesem Skript #Die Protokoll, an dem die Datensätze gespeichert werden. Start-transkript -Path "$ psScripTroot \ logs \ log-cpuloadpercentage-$ (Get-Datum -f yyyy-mm-dd).TXT "-Append #While Schleife hält es fort Der durchschnittliche Lastprozentsatz zu diesem Zeitpunkt wartet dann 5 Sekunden, um es erneut zu tun. $ cpuloadpercent = Get-ciminstance Win32_Processor | Mess -Object -Property Loadpercentage -Durchschnitt | Select-Object Average; Start-Sleep-Sekunden 5 #isoliert nur den Durchschnitt, sodass es keine seltsame durchschnittliche = 13 String $ cpUloadpercent = $ cpuloadpercent gibt.Durchschnittliche #Writes-Ergebnisse, die zu Screening oder in diesem Fall zum Protokoll-Schreib-Host "$ timestamp CPU-Lastprozentsatz $ cpuloadpercent" Stop-Transcript
    1. Dies kann in den beiden erfolgen Windows -Eingabeaufforderung oder Power Shell. Öffnen Sie es als Administrator.
    2. Geben Sie den Befehl ein NSSM logCpuavg installieren und laufen Sie es. Der NSSM Service Installer Fenster wird sich öffnen.
    1. Klicken Sie auf die Schaltfläche Ellipses neben der Weg: Feld, navigieren Sie zur Power Shell.exe Das befindet sich normalerweise bei C: \ Windows \ System32 \. Wählen Sie PowerShell.exe. Der Weg: Und Start -up -Verzeichnis: Felder werden automatisch besiedelt.
    1. Geben Sie Folgendes in die ein Argumente: Feld: -ExecutionPolicy Bypass -noprofile -file “C: \ pathtoscript \ get -script.PS1 ”, Wo der letzte Teil der Weg zu Ihrem PowerShell -Skript und zum Skriptnamen ist.
    1. Wähle aus Einzelheiten Tab. Geben Sie das ein, was der Service so angezeigt werden soll, wie im Windows Services Manager in die Anzeigename: Feld. Geben Sie dann ein, was es in der tut Beschreibung: Feld. Der Starttyp: kann eingestellt werden als Automatisch, Automatisch (verspäteter Start), Handbuch, oder Behinderte. Für diese Übung ist automatisch gut.
    1. Wähle aus Einloggen Tab. Wählen Dieses Konto: Optionsschalter und geben Sie das Konto und das Passwort ein, das der Dienst ausgeführt wird. Sie müssen ein Konto auswählen, unter dem der Dienst ausgeführt wird. Im Idealfall haben Sie ein Windows -Konto erstellt, um diesen Dienst auszuführen. Die Berechtigungen dieses Kontos sollten nur auf das beschränkt sein, was der Service tun muss. Sie können die auswählen Lokales Systemkonto, Es wird jedoch aus Sicherheitsgründen nicht empfohlen.

    Es gibt mehrere andere Registerkarten, mit denen der Dienst angepasst werden kann. Für diese Übung sind die Standardwerte in diesen Registerkarten ausreichend. Wähle aus Service installieren Taste.

    1. Wenn der Dienst installiert ist, sehen Sie die Service „LogCpuavg“ erfolgreich installiert! Fenster. Wählen OK es zu schließen. Das schließt die Installation.
    1. Öffne das Windows Services Manager und stellen Sie sicher, dass der Service da ist.
    1. Führen Sie den Service aus, um sicherzustellen, dass er ausgeführt wird.
    1. Um zu überprüfen, ob dieser Dienst ausgeführt wird, verwenden Sie Dateimanager Navigieren Sie zu dem Ort, an dem das Protokoll gespeichert werden soll, um festzustellen, ob es existiert.

    NSSM-Check-Log.png

    Entfernen eines Windows -Dienstes mit NSSM

    Vielleicht müssen Sie Ihre CPU -Last nicht mehr überwachen, damit Sie den Service loswerden möchten. Zum Glück macht NSSM das einfach.

    1. Im Windows Services Manager, Stoppen Sie den Service. Tun Sie dies, indem Sie die auswählen Log CPU -durchschnittliche Last Service dann entweder die Square -Stopp -Taste in der Symbolleiste oder die auswählen Stoppen Sie den Service Link auf der linken Seite.
    1. Öffne entweder die Windows -Eingabeaufforderung oder Power Shell als Administrator.
    2. Geben Sie den Befehl ein NSSM logCpuavg entfernen und führen Sie den Befehl aus.
    1. NSSM wird Sie auffordern, zu bestätigen. Wählen Ja.
    1. Wenn der Dienst entfernt wird, sehen Sie die Service „Logcpuavg“ erfolgreich entfernt! Bestätigung. Wählen OK und du bist fertig.

    Das ist alles. Es ist eine gute Idee, den Servicemanager zu überprüfen, um sicherzustellen, dass der Service nicht mehr da ist. Wenn Sie den Service immer noch sehen, müssen Sie möglicherweise den Bildschirm aktualisieren, und er sollte weg sein.

    Dienste sind eine großartige Möglichkeit, Apps oder Skripte auszuführen, die ständig ausgeführt werden müssen, sich selbst neu starten, wenn sie ausfallen, oder eine andere Berechtigung als der aktuelle Benutzer benötigt. Wenn Sie Ihre App oder Ihr Skript nicht benötigen, um all diese Dinge zu erledigen, sollten Sie stattdessen eine geplante Aufgabe verwenden.