Jak vytvořit službu Windows


Někdy potřebujete aplikaci nebo skript, abyste mohli pokračovat v provozu, ať už jste přihlášeni k počítači nebo ne. Možná je to Skript PowerShell pro monitorování portů nebo webový server hostující stránku ve vaší domácí síti.

Jde o to, že pokud chcete, aby proces, skript nebo program fungoval tak dlouho, dokud je počítač zapnutý, budete muset vytvořit Služba Windows.

Co potřebuji k vytvoření služby Windows?

Chcete-li vytvořit službu Windows v systému Windows 10, existuje několik předpokladů:

  • Přístup správce k počítači
  • Něco, co se spouští jako služba (skript PowerShell, program atd.)
  • NSSM (Non-Sucking Service Manager)
  • Co je správce služby Non-Sucking Service?

    Ano, takové jméno nemůžete vynechat, aniž byste to vysvětlili. Jistě, jméno je nešťastné, přesto je přesné. Non-Sucking Service Manager (NSSM) je pravděpodobně nejjednodušší způsob, jak vytvořit službu Windows, která je vysoce spolehlivá a konfigurovatelná. Je navíc zdarma a Software s otevřeným zdrojovým kódem (OSS).

    NSSM lze použít prostřednictvím Příkazový řádek systému Windows nebo grafického uživatelského rozhraní (GUI ). To znamená, že jej může použít kdokoli. NSSM lze použít v jakékoli verzi systému Windows, která se vrací do Windows 2000 včetně. Existuje 32bitové a 64bitové verzí. Pokud používáte 64bitový počítač, nejprve vyzkoušejte tuto verzi. Pokud to nefunguje, přejděte zpět k 32bitové verzi.

    Můžete stáhněte si NSSM z webu, klonujte NSSM z Git nebo nainstalujte NSSM s Chocolatey. Chocolatey je správce balíčků pro Windows. Způsoby instalace se budou lišit v závislosti na trase, kterou zvolíte. Přečtěte si pokyny NSSM. V našem příkladu stahujeme z webu NSSM a instalujeme jej do adresáře C: \ WINDOWS \ system32.

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

    Vytvoření služby Windows pomocí NSSM

    V tomto příkladu vytvoříme službu z Skript prostředí PowerShell pro přihlášení Průměrné procento zatížení CPU.

    1. Zkopírujte a uložte tento skript jako log-CPULoadPercentage.ps1na místo, na které pravděpodobně nebude mít přístup nikdo jiný. Zkuste vytvořit adresář C: / Skriptya uložit jej tam. Ve skriptech také vytvořte složku s názvem Protokoly. Cesta ke skriptu je C: /Scripts/log-CPULoadPercentage.ps1. To budete potřebovat později.
    2. Poznámka: Všechny níže uvedené řádky následované symbolem # jsou komentáře a nebudou mít vliv na skript.

      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. To lze provést buď v příkazovém řádku systému Windowsnebo v prostředí PowerShell.Otevřete jej jako správce.
      2. Zadejte příkaz nssm install logCPUAvga spusťte jej. Otevře se okno Instalační program služby NSSM.
        1. Klikněte na tlačítko elipsy vedle pole Cesta:, přejděte na powershell.exekterá se obvykle nachází na adrese C: \ Windows \ System32 \. Vyberte powershell.exe. Pole Path:a Startup directory:budou automaticky vyplněna.
          1. Do pole Argumenty:zadejte toto: -ExecutionPolicy Bypass -NoProfile -File „C: \ PathToScript \ get-Script.ps1“, kde poslední část je cesta k vašemu skriptu PowerShell a názvu skriptu.
            1. Vyberte kartu Podrobnosti. Do pole Zobrazovaný název:zadejte, co se má služba zobrazovat jako ve Správci služeb Windows. Poté do pole Popis:zadejte, co dělá. Typ spouštění:lze nastavit jako Automatický, Automatický (Zpožděný start), Ručnínebo Zakázáno. Pro toto cvičení je dobrá volba Automatic.
              1. Vyberte kartu Přihlásit se. Vyberte přepínač Tento účet: a zadejte účet a heslo, pod kterým bude služba spuštěna. Budete si muset vybrat účet, pod kterým bude služba spuštěna. V ideálním případě budete mít účet Windows vytvořený jen pro provozování této služby. Oprávnění tohoto účtu by měla být omezena pouze na to, co služba musí dělat. Můžete si vybrat Účet místního systému, ale z bezpečnostních důvodů se to nedoporučuje.
              2. Existuje několik dalších karet, které lze použít k přizpůsobení servis. Pro toto cvičení postačují výchozí hodnoty na těchto kartách. Klikněte na tlačítko Instalovat službu.

                1. Když je služba nainstalována, uvidíte úspěšně nainstalovanou Službu „logCPUAvg“!okno. Zavřete jej kliknutím na tlačítko OK. Tím je instalace ukončena.
                  1. Otevřete Správce služeb Windowsa ujistěte se, že tam služba je.
                    1. Spusťte službu a zajistěte její spuštění.
                      1. Chcete-li ověřit, že je tato služba spuštěna, použijte Průzkumník souborůa přejděte na místo, kde má být uložen protokol, abyste zjistili, zda existuje.
                      2. S NSSM

                        Možná již nemusíte sledovat svůj CPU načítat, takže byste se této služby chtěli zbavit. Naštěstí to NSSM usnadňuje.

                        1. Ve Správci služeb Windowsslužbu zastavte. To provedete výběrem služby Zaznamenat průměrné zatížení CPUa následným výběrem čtvercového tlačítka zastavení na panelu nástrojů nebo odkazu Zastavit službuna levé straně.
                          1. Otevřete buď příkazový řádek systému Windowsnebo PowerShelljako správce.
                          2. Zadejte příkaz nssm remove logCPUAvga proveďte příkaz.
                            1. NSSM vás požádá o potvrzení. Vyberte Ano/<.li>
                              1. Po odebrání služby se zobrazí služba „logCPUAvg „Úspěšně odstraněno!Potvrzení. Vyberte OKa máte hotovo.
                              2. To je vše. Je dobré zkontrolovat správce služeb, zda služba již není k dispozici. Pokud stále vidíte službu, možná budete muset obnovit obrazovku a měla by být pryč.

                                Služby jsou skvělý způsob, jak spouštět aplikace nebo skripty, které je třeba spouštět stále, pokud se nezdaří, restartujte se , nebo potřebujete oprávnění odlišná od aktuálního uživatele. Pokud nepotřebujete, aby vaše aplikace nebo skript všechny tyto věci dokázaly, zvažte místo toho pomocí naplánované úlohy.

                                Související příspěvky:


                                12.11.2020