Jak utworzyć usługę Windows

Jak utworzyć usługę Windows

Czasami potrzebujesz aplikacji lub skryptu, aby działać, niezależnie od tego, czy jesteś zalogowany do komputera, czy nie. Może jest to skrypt PowerShell do monitorowania portów lub serwera internetowego hostującego stronę w sieci domowej.

Chodzi o to, że jeśli chcesz, aby proces, skrypt lub program działał tak długo, jak komputer jest włączony, musisz utworzyć usługę systemu Windows.

Spis treści

    NSSM może być używany za pośrednictwem wiersza polecenia Windows lub graficznego interfejsu użytkownika (GUI). Oznacza to, że każdy może go użyć. NSSM może być używany w dowolnej wersji systemu Windows, w tym Windows 2000. Istnieją wersje 32-bitowe i 64-bitowe. Jeśli używasz 64-bitowego komputera, najpierw wypróbuj tę wersję. Jeśli to nie działa, wróć do wersji 32-bitowej.

    Możesz pobrać NSSM ze strony internetowej, klon NSSM z git lub zainstalować NSSM z czekoladą. Chocolatey to menedżer pakietów dla Windows. Metody instalacji będą się różnić w zależności od trasy. Proszę zapoznać się z instrukcjami NSSM. W naszym przykładzie pobieramy ze strony internetowej NSSM i instalujemy ją w C: \ Windows \ System32.

    Utwórz usługę Windows z NSSM

    W tym przykładzie utworzymy usługę ze skryptu PowerShell, aby zarejestrować średni procent obciążenia procesora.

    1. Skopiuj i zapisz ten skrypt jako log-cpuloadpercentage.PS1 do miejsca, do którego prawdopodobnie nie będzie dostępny przez kogokolwiek innego. Spróbuj utworzyć katalog C:/scenariusze I przechowując go tam. Utwórz także folder w skryptach o nazwie Dzienniki. Zauważ, że ścieżka do skryptu jest C:/Scripts/Log-Cpuloadpercentage.PS1. Będziesz tego później potrzebował.

    Notatka: Wszystkie wiersze poniżej, a następnie symbol # to komentarze i nie wpłyną na skrypt.

    Cls #optional. Lubię używać tego do wyczyszczenia terminali podczas testowania. #Upewnij się, że masz folder o nazwie Logs w tym samym katalogu, co ten skrypt #Dziennik to miejsce, w którym będą przechowywane rekordy. Start-transcript -path "$ psscriptroot \ logs \ log-cpuloadpercentage-$ (get-date -f yyyy-mm-dd).txt "-Append #podczas gdy pętla utrzymuje go, dopóki ręcznie się zatrzyma, a ($ true)  #określa znacznik czasu, aby wiedzieć, kiedy pomiar został wykonany $ timestamp = get-date -f yyyy-mm-h: mm: ss #gets the the the the the the the cegets the średni procent obciążenia w tym czasie, a następnie czeka 5 sekund, aby to zrobić ponownie. $ cpuloadpercent = get-ciminstance Win32_Processor | Miara -obiekt -Property loadPercentage -5 | SELECT-OBITTES ŚREDNIE; START-SLEP -SECONDS 5 #isolates tylko średnia, więc nie ma dziwnego @średnia = 13 ciąg $ cpuloadpercent = $ cpuloadpercent.Średnia #Writes Wyniki na ekranie, lub w tym przypadku do dziennika zapisu „$ timestamp CPU Procent obciążenia $ cpuloadpercent” stop-transcript
    1. Można to zrobić w obu Polecenie Windows Lub PowerShell. Otwórz go jako administrator.
    2. Wprowadź polecenie NSSM instal logCPuavg i uruchom go. NSSM Service Installer okno zostanie otwarte.
    1. Kliknij przycisk elipsy obok Ścieżka: pole, przejdź do PowerShell.exe To zwykle znajduje się pod adresem C: \ Windows \ System32 \. Wybierz PowerShell.exe. Ścieżka: I Katalog Startup: Pola będą automatycznie wypełnione.
    1. Wprowadź następujące w Argumenty: pole: -ExecutionPolicy Bypass -noprofile -file „C: \ ścieżkatoscript \ get -script.PS1 ”, gdzie ostatnia część jest ścieżką do twojego skryptu PowerShell i nazwy skryptu.
    1. Wybierz Detale patka. Wprowadź do tego, co chcesz, aby usługa wyświetlała się jak w systemie Windows Services Manager Wyświetlana nazwa: pole. Następnie wprowadź to, co robi w Opis: pole. Typ uruchamiania: można ustawić jako Automatyczny, Automatyczny (opóźniony start), podręcznik, Lub Wyłączony. W tym ćwiczeniu automatyczne jest dobre.
    1. Wybierz Zalogować się patka. Wybierać To konto: przycisk opcji i wprowadź konto i hasło, które usługa uruchomi. Musisz wybrać konto, na mocy którego usługa będzie działać. Idealnie, będziesz mieć konto Windows utworzone tylko do uruchomienia tej usługi. Uprawnienia tego konta powinny być ograniczone tylko do tego, co musi zrobić usługa. Możesz wybrać Lokalne konto systemowe, Ale nie jest to zalecane z powodów bezpieczeństwa.

    Istnieje kilka innych kart, które można użyć do dostosowania usługi. W tym ćwiczeniu wartości domyślne w tych zakładkach są wystarczające. Wybierz Zainstaluj usługę przycisk.

    1. Po zainstalowaniu usługi zobaczysz Usługa „LogCPuavg” zainstalowana pomyślnie! okno. Wybierać OK Aby to zamknąć. To kończy instalację.
    1. Otworzyć Menedżer usług Windows i upewnij się, że usługa tam jest.
    1. Uruchom usługę, aby upewnić się, że będzie działać.
    1. Aby sprawdzić, czy ta usługa działa, użyj Przeglądarka plików przejść do miejsca, w którym powinien być zapisany dziennik, aby sprawdzić, czy istnieje.

    NSSM-CHECK-LOG.png

    Usuwanie usługi Windows z NSSM

    Może nie musisz już monitorować obciążenia procesora, więc chcesz pozbyć się usługi. Na szczęście NSSM ułatwia to.

    1. w Menedżer usług Windows, Zatrzymaj usługę. Zrób to, wybierając Średnie obciążenie procesora dziennika Usługa, a następnie wybór przycisku zatrzymania kwadratowego na pasku narzędzi lub Zatrzymaj usługę link po lewej stronie.
    1. Otwórz albo Polecenie Windows Lub PowerShell jako administrator.
    2. Wprowadź polecenie NSSM Usuń logCPuavg i wykonaj polecenie.
    1. NSSM poprosi cię o potwierdzenie. Wybierać Tak.
    1. Po usunięciu usługi zobaczysz Usługa „LogCPuavg” usunięta pomyślnie! Potwierdzenie. Wybierać OK i jesteś skończony.

    To wszystko. Warto sprawdzić menedżera usług, aby upewnić się, że usługa już nie ma. Jeśli nadal widzisz usługę, może być konieczne odświeżenie ekranu i powinno zniknąć.

    Usługi to świetny sposób na uruchamianie aplikacji lub scenariuszy, które muszą cały czas uruchamiać, ponownie uruchomić się, jeśli się nie powiedzie, lub potrzebują uprawnień inaczej niż bieżący użytkownik. Jeśli nie potrzebujesz swojej aplikacji lub skryptu do wykonania wszystkich tych rzeczy, rozważ użycie zaplanowanego zadania.