Jak utworzyć usługę systemu Windows


Czasami potrzebujesz aplikacji lub skryptu, który będzie działał bez względu na to, czy jesteś zalogowany na komputerze, czy nie. Może to Skrypt PowerShell do monitorowania portów lub serwer WWW hostujący 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ługa Windows.

Czego potrzebuję, aby utworzyć usługę systemu Windows?

Aby utworzyć usługę systemu Windows w systemie Windows 10, należy spełnić kilka wymagań wstępnych:

  • Dostęp administratora na komputerze
  • Coś do uruchomienia jako usługa (skrypt PowerShell, program itp.)
  • Zainstalowano Non-Sucking Service Manager (NSSM)
  • Co to jest Non-Sucking Service Manager?

    Tak, nie możesz porzucić takiej nazwy bez jej wyjaśnienia. Oczywiście nazwa jest niefortunna, ale jest dokładna. Non-Sucking Service Manager (NSSM) to prawdopodobnie najłatwiejszy sposób tworzenia usługi Windows, która jest zarówno wysoce niezawodna, jak i konfigurowalna. Dodatkowo jest darmowy i Oprogramowanie Open Source (OSS).

    NSSM może być używany przez Wiersz polecenia systemu Windows lub graficzny interfejs użytkownika (GUI ). Oznacza to, że każdy może go używać. NSSM może być używany w każdej wersji systemu Windows, począwszy od systemu Windows 2000 włącznie. Istnieje 32-bitowe i 64-bitowe wersji. Jeśli używasz komputera 64-bitowego, wypróbuj najpierw tę wersję. Jeśli to nie zadziała, wróć do wersji 32-bitowej.

    Możesz pobierz NSSM ze strony internetowej, sklonuj NSSM z Git lub zainstaluj NSSM z Chocolatey. Chocolatey to menedżer pakietów dla systemu Windows. Metody instalacji będą się różnić w zależności od wybranej trasy. Prosimy zapoznać się z instrukcjami NSSM. W naszym przykładzie pobieramy z witryny NSSM i instalujemy go w C: \ WINDOWS \ system32.

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

    Utwórz usługę systemu Windows z NSSM

    W tym przykładzie utworzymy usługę z Skrypt PowerShell do logowania Średni procent obciążenia procesora.

    1. Skopiuj i zapisz ten skrypt jako log-CPULoadPercentage.ps1w miejscu, do którego nikt inny prawdopodobnie nie będzie miał dostępu. Spróbuj utworzyć katalog C: / Scriptsi tam go zapisz. Utwórz też w Skryptach folder o nazwie Dzienniki. Zwróć uwagę, że ścieżka do skryptu to C: /Scripts/log-CPULoadPercentage.ps1. Będziesz potrzebować tego później.
    2. Uwaga: wszystkie poniższe wiersze, po których następuje symbol #, są komentarzami i nie wpłyną na skrypt.

      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. Można to zrobić w wierszu polecenia systemu Windowslub w PowerShellu.Otwórz go jako Administrator.
      2. Wpisz polecenie nssm install logCPUAvgi uruchom je. Otworzy się okno instalatora usługi NSSM.
        1. Kliknij przycisk wielokropka obok pola Ścieżka:, przejdź do powershell.exezwykle znajduje się w C: \ Windows \ System32 \. Wybierz powershell.exe. Pola Ścieżka:i Katalog startowy:zostaną wypełnione automatycznie.
          1. W polu Argumenty:wpisz: -ExecutionPolicy Bypass -NoProfile -File “C: \ PathToScript \ get-Script.ps1”, gdzie ostatnia część to ścieżka do skryptu PowerShell i nazwy skryptu.
            1. Wybierz kartę Szczegóły. W polu Wyświetlana nazwa:wpisz, jak ma być wyświetlana usługa, tak jak w menedżerze usług systemu Windows. Następnie wpisz, co robi w polu Opis:. Typ uruchomienia:można ustawić jako Automatyczny, Automatyczny (opóźniony start), Ręcznylub Wyłączone. W tym ćwiczeniu opcja Automatyczna jest dobra.
              1. Wybierz kartę Logowanie. Wybierz przycisk opcji To konto: i wprowadź konto i hasło, na którym będzie działać usługa. Musisz wybrać konto, na którym będzie działać usługa. Idealnie byłoby, gdybyś miał konto Windows utworzone tylko do uruchamiania tej usługi. Uprawnienia tego konta powinny być ograniczone tylko do tego, co usługa musi zrobić. Możesz wybrać Lokalne konto systemowe, ale nie jest to zalecane ze względów bezpieczeństwa.
              2. Istnieje kilka innych zakładek, których można użyć do dostosowania usługa. W tym ćwiczeniu wystarczające są wartości domyślne na tych kartach. Wybierz przycisk Zainstaluj usługę.

                1. Po zainstalowaniu usługi zobaczysz, że Usługa „logCPUAvg” została pomyślnie zainstalowana!okno. Wybierz OK, aby je zamknąć. To kończy instalację.
                  1. Otwórz Menedżera usług systemu Windowsi upewnij się, że usługa jest dostępna.
                    1. Uruchom usługę, aby upewnić się, że będzie działać.
                      1. Aby sprawdzić, czy ta usługa jest uruchomiona, użyj Eksploratora plików, aby przejść do miejsca, w którym dziennik ma zostać zapisany i czy istnieje.
                      2. Usuwanie usługi systemu Windows Z NSSM

                        Może nie musisz już monitoruj swój procesor ładować, więc chciałbyś pozbyć się tej usługi. Na szczęście NSSM to ułatwia.

                        1. W Menedżerze usług systemu Windowszatrzymaj usługę. Zrób to, wybierając usługę Loguj średnie obciążenie procesora, a następnie wybierając kwadratowy przycisk zatrzymania na pasku narzędzi lub link Zatrzymaj usługępo lewej stronie.
                          1. Otwórz wiersz polecenia systemu Windowslub PowerShelljako administrator.
                          2. Wpisz polecenie nssm remove logCPUAvgi wykonaj je.
                            1. NSSM poprosi o potwierdzenie. Wybierz Tak”.
                              1. Po usunięciu usługi zobaczysz Usługa „logCPUAvg ”Usunięto pomyślnie!Potwierdzenie. Wybierz OKi gotowe.
                              2. To wszystko. Dobrze jest sprawdzić menedżera usług, aby upewnić się, że usługi już nie ma. Jeśli nadal widzisz tę usługę, może być konieczne odświeżenie ekranu i powinno jej nie być.

                                Usługi to świetny sposób na uruchamianie aplikacji lub skryptów, które muszą działać przez cały czas. Jeśli się nie uda, uruchom je ponownie. lub potrzebujesz uprawnień innych niż bieżący użytkownik. Jeśli nie potrzebujesz aplikacji lub skryptu do wykonywania wszystkich tych czynności, rozważ zamiast tego za pomocą zaplanowanego zadania.

                                Powiązane posty:


                                12.11.2020