A Windows szolgáltatás létrehozása


Néha szükség van egy alkalmazásra vagy szkriptre a futtatáshoz, függetlenül attól, hogy be van-e jelentkezve a számítógépre. Talán PowerShell-parancsfájl a portok figyeléséhez vagy webszerver, amely otthoni hálózaton tárol egy oldalt.

A lényeg az, hogy ha azt akarja, hogy egy folyamat, szkript vagy program addig fusson, amíg a számítógép be van kapcsolva, akkor létre kell hoznia egy Windows szolgáltatás -t.

Mi szükséges a Windows szolgáltatás létrehozásához?

A Windows szolgáltatás Windows 10 rendszerben történő létrehozásához néhány előfeltétel van:

  • Rendszergazda hozzáférés a számítógépen
  • Valami szolgáltatásként futtatható dolog (PowerShell-szkript, program stb.)
  • Telepítve van a nem szívó szolgáltatás-kezelő (NSSM)
  • Mi az a nem szívó szolgáltatáskezelő?

    Igen, nem dobhat el egy ilyen nevet anélkül, hogy elmagyarázná. Biztos, hogy a név nem szerencsés, mégis pontos. A Non-Sucking Service Manager (NSSM) vitathatatlanul a legegyszerűbb módszer egy rendkívül megbízható és konfigurálható Windows szolgáltatás létrehozására. Ráadásul ingyenes és Nyílt forráskódú szoftver (OSS).

    Az NSSM használható a Windows parancssor vagy grafikus felhasználói felületen (GUI) keresztül ). Ez azt jelenti, hogy bárki használhatja. Az NSSM a Windows bármely olyan verziójára használható, amely visszamegy a Windows 2000-be, beleértve a Windows 2000-t is. Ha 64 bites számítógépet használ, akkor először próbálja ki ezt a verziót. Ha nem működik, térjen vissza a 32 bites verzióra.

    Lehet töltse le az NSSM-et a weboldalról, klónozza az NSSM-et a Git-től vagy telepítse az NSSM-et a Chocolatey-val. A Chocolatey a Windows csomagkezelője. A telepítési módszerek attól függően változnak, hogy melyik utat választja. Kérjük, olvassa el az NSSM utasításait. Például letöltjük az NSSM webhelyéről, és telepítjük a C: \ WINDOWS \ system32fájlba.

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

    Windows szolgáltatás létrehozása az NSSM használatával

    Ebben a példában létrehozunk egy szolgáltatást egy PowerShell-parancsfájl ből a naplózáshoz A CPU átlagos terhelési százaléka.

    1. Másolja és mentse ezt a szkriptet log-CPULoadPercentage.ps1néven egy helyre, amelyhez valószínűleg senki más nem fér hozzá. Próbálja meg létrehozni a C: / Scriptskönyvtárat, és ott tárolni. Ezenkívül hozzon létre egy mappát a Scriptsben Naplóknéven. Vegye figyelembe, hogy a szkript elérési útja: C: /Scripts/log-CPULoadPercentage.ps1. Erre később szüksége lesz.
    2. Megjegyzés: Az összes sor, amelyet a # szimbólum követ, megjegyzések és nem befolyásolják a szkriptet.

      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. Ez a Windows parancssorbanvagy a PowerShellben is megtehető.Nyissa meg rendszergazdaként.
      2. Írja be az nssm install logCPUAvgparancsot, és futtassa azt. Megnyílik az NSSM service installerablak.
        1. Kattintson az ellipszis gombra az Útvonal:mező mellett, és lépjen a powershell.exe >amely általában a C: \ Windows \ System32 \helyen található. Válassza a powershell.exe fájlt. A Path:és Startup directory:mezők automatikusan kitöltődnek.
          1. Írja be a következőt az Érvek:mezőbe: -ExecutionPolicy Bypass -NoProfile -File "C: \ PathToScript \ get-Script.ps1"fájl, ahol az utolsó rész az elérési út a PowerShell parancsfájlhoz és a parancsfájl nevéhez.
            1. Válassza a Részletekfület. A Megjelenített név:mezőbe írja be, hogy a szolgáltatás hogyan jelenjen meg a Windows Services kezelőben. Ezután írja be a műveletet a Leírás:mezőbe. Az Indítási típus:beállítható Automatikus, Automatikus (késleltetett indítás), Kézivagy Letiltva. Ehhez a gyakorlathoz jó az Automatikus.
              1. Válassza a Bejelentkezésfület. Válassza a Ez a fiók: választógombot, és adja meg azt a fiókot és jelszót, amelyen a szolgáltatás futni fog. Ki kell választania egy fiókot, amely alatt a szolgáltatás futni fog. Ideális esetben a szolgáltatás futtatásához létre kell hoznia egy Windows-fiókot. Ennek a fióknak az engedélyeit csak arra kell korlátozni, amelyet a szolgáltatásnak meg kell tennie. Kiválaszthatja a Helyi rendszer fiókot, de biztonsági okokból nem ajánlott.
              2. Számos más fül is használható a szolgáltatás. Ehhez a gyakorlathoz elegendőek azok a fülek alapértelmezett értékei. Kattintson a Szolgáltatás telepítésegombra.

                1. A szolgáltatás telepítése után megjelenik a LogCPUAvg szolgáltatás sikeres telepítése!ablak. A bezáráshoz válassza az OKlehetőséget. Ezzel befejeződik a telepítés.
                  1. Nyissa meg a Windows Services Managerszolgáltatást, és győződjön meg arról, hogy a szolgáltatás rendelkezésre áll.
                    1. Futtassa a szolgáltatást a működésének biztosításához.
                      1. Annak ellenőrzéséhez, hogy a szolgáltatás fut-e, használja a File Explorerprogramot, és keresse meg azt a helyet, ahol a naplót el kell menteni, és megnézni, hogy létezik-e.
                      2. ssm-check-log.png

                        Windows szolgáltatás eltávolítása Az NSSM

                        Talán már nem kell figyelemmel kíséri a CPU-t töltenie, ezért szeretne megszabadulni a szolgáltatástól. Szerencsére az NSSM ezt megkönnyíti.

                        1. A Windows Services Manageralkalmazásban állítsa le a szolgáltatást. Ehhez válassza ki a Naplózza a CPU átlagos terhelésétszolgáltatást, majd válassza az eszköztár négyzet alakú stop gombját vagy a bal oldalon található A szolgáltatás leállításalinket.
                          1. Nyissa meg a Windows Parancssorvagy a PowerShellrendszergazdaként. Írja be az nssm logCPUAvg eltávolításparancsot, és hajtsa végre a parancsot.
                            1. Az NSSM megerősítést kér. Válassza az Igen.
                              1. A szolgáltatás eltávolításakor megjelenik a Service logCPUAvg ”Sikeresen eltávolítva!Megerősítés. Válassza az OKlehetőséget, és kész.
                              2. Ennyi. Célszerű ellenőrizni a szolgáltatás menedzserét, hogy megbizonyosodjon arról, hogy a szolgáltatás már nincs meg. Ha továbbra is látja a szolgáltatást, előfordulhat, hogy frissítenie kell a képernyőt, és annak el kell tűnnie.

                                A szolgáltatások nagyszerű módja az olyan alkalmazások vagy szkriptek futtatásának, amelyeknek folyamatosan futtatnia kell, indítsa újra magát, ha nem sikerül , vagy más jogosultságokra van szükségük, mint az aktuális felhasználó. Ha nincs szüksége az alkalmazásra vagy a szkriptre mindezen dolgok elvégzéséhez, fontolja meg inkább a ütemezett feladat segítségével t.

                                Kapcsolódó hozzászólások:


                                12.11.2020