Cum să creați un serviciu Windows


Uneori, aveți nevoie de o aplicație sau de un script pentru a rula în continuare, indiferent dacă sunteți conectat sau nu la computer. Poate că este un Script PowerShell pentru monitorizarea porturilor sau un server web care găzduiește o pagină din rețeaua dvs. de acasă.

Ideea este că, dacă doriți ca un proces, un script sau un program să ruleze cât timp computerul este pornit, va trebui să creați un Serviciul Windows.

De ce am nevoie pentru a crea un serviciu Windows?

Pentru a crea un serviciu Windows în Windows 10, există câteva condiții prealabile:

  • Accesul administratorului pe computer
  • Ceva de executat ca serviciu (script PowerShell, program etc.)
  • Non-Sucking Service Manager (NSSM) instalat
  • Ce este managerul de servicii care nu suge?

    Da, nu puteți renunța la un astfel de nume fără a-l explica. Sigur că numele este regretabil, dar este corect. Managerul de servicii care nu suge (NSSM) este, fără îndoială, cel mai simplu mod de a crea un serviciu Windows, care este atât fiabil, cât și configurabil. În plus, este gratuit și Software open source (OSS).

    NSSM poate fi utilizat prin Prompt de comandă Windows sau printr-o interfață grafică pentru utilizator (GUI) ). Aceasta înseamnă că oricine îl poate folosi. NSSM poate fi utilizat pe orice versiune de Windows care revine și include Windows 2000. Există versiuni 32 de biți și 64 de biți. Dacă utilizați un computer pe 64 de biți, încercați mai întâi versiunea respectivă. Dacă nu funcționează, reveniți la versiunea pe 32 de biți.

    Puteți descărcați NSSM de pe site, clonează NSSM de la Git sau instalați NSSM cu Chocolatey. Chocolatey este un manager de pachete pentru Windows. Metodele de instalare vor varia în funcție de ruta pe care o parcurgeți. Vă rugăm să consultați instrucțiunile NSSM. Pentru exemplul nostru, descărcăm de pe site-ul NSSM și îl instalăm în C: \ WINDOWS \ system32.

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

    Creați un serviciu Windows cu NSSM

    Pentru acest exemplu, vom crea un serviciu dintr-un Script PowerShell pentru înregistrare Procentul mediu de încărcare a procesorului.

    1. Copiați și salvați acest script ca log-CPULoadPercentage.ps1într-un loc care nu este probabil accesat de nimeni altcineva. Încercați să creați directorul C: / Scripturiși să îl stocați acolo. De asemenea, creați un folder în Scripturi numit Jurnale. Rețineți că calea către script este C: /Scripts/log-CPULoadPercentage.ps1. Veți avea nevoie de asta mai târziu.
    2. Notă: Toate liniile de mai jos urmate de simbolul # sunt comentarii și nu vor afecta scriptul.

      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. Acest lucru se poate face fie în Windows Command Prompt, fie în PowerShell.Deschideți-l ca administrator.>
      2. Introduceți comanda nssm install logCPUAvgși rulați-o. Se va deschide fereastra Instalator de servicii NSSM.
        1. Faceți clic pe butonul elipselor de lângă câmpul Calea:, navigați la powershell.execare se află în mod normal la C: \ Windows \ System32 \. Selectați powershell.exe. Câmpurile Calea:și Directorul de pornire:vor fi completate automat.
          1. Introduceți următoarele în câmpul Argumente:: -ExecutionPolicy Bypass -NoProfile -File „C: \ PathToScript \ get-Script.ps1”, unde ultima parte este calea către scriptul dvs. PowerShell și numele scriptului.
            1. Selectați fila Detalii. Introduceți ceea ce doriți să apară serviciul în Managerul de servicii Windows în câmpul Nume afișat:. Apoi, introduceți ce face în câmpul Descriere:. Tipul de pornire:poate fi setat ca Automat, Automat (Start întârziat), Manualsau Dezactivat. Pentru acest exercițiu, Automatul este bun.
              1. Selectați fila Conectare. Selectați Acest cont: butonul radio și introduceți contul și parola în care va rula serviciul. Va trebui să alegeți un cont sub care va rula serviciul. În mod ideal, veți avea un cont Windows creat doar pentru a rula acest serviciu. Permisiunile acestui cont ar trebui să fie limitate doar la ceea ce trebuie să facă serviciul. Puteți alege Contul de sistem local, dar nu este recomandat din motive de securitate.
              2. Există câteva alte file care pot fi utilizate pentru a personaliza serviciu. Pentru acest exercițiu, valorile implicite din aceste file sunt suficiente. Selectați butonul Instalare serviciu.

                1. Când serviciul este instalat, veți vedea Serviciul „logCPUAvg” instalat cu succes!fereastră. Selectați OKpentru a-l închide. Aceasta încheie instalarea.
                  1. Deschideți Windows Services Managerși asigurați-vă că serviciul este acolo.
                    1. Rulați serviciul pentru a vă asigura că va rula.
                      1. Pentru a verifica dacă acest serviciu rulează, utilizați File Explorerpentru a naviga până unde se presupune că trebuie salvat jurnalul pentru a vedea dacă acesta există.
                      2. Eliminarea unui serviciu Windows Cu NSSM

                        Poate că nu mai trebuie să încărcați monitorizează-ți procesorul, așa că ați dori să scăpați de serviciu. Din fericire, NSSM face acest lucru ușor.

                        1. În Managerul de servicii Windows, opriți serviciul. Faceți acest lucru selectând serviciul Înregistrați încărcarea medie a procesorului, apoi selectând butonul de oprire pătrată din bara de instrumente sau linkul Opriți serviciuldin partea stângă.
                          1. Deschideți fie Promptul de comandă Windows, fie PowerShellca administrator.
                          2. Introduceți comanda nssm remove logCPUAvgși executați comanda.
                            1. NSSM vă va cere să confirmați. Selectați Da/<.>
                              1. Când serviciul este eliminat, veți vedea Serviciul „logCPUAvg ”Eliminat cu succes!Confirmare. Selectați OKși ați terminat.
                              2. Atât. Este o idee bună să verificați managerul de servicii pentru a vă asigura că serviciul nu mai este acolo. Dacă veți vedea în continuare serviciul, poate fi necesar să reîmprospătați ecranul și acesta ar trebui să dispară.

                                Serviciile sunt o modalitate excelentă de a rula aplicații sau scripturi care trebuie să ruleze tot timpul, reporniți singuri dacă nu reușesc sau aveți nevoie de privilegii diferite de utilizatorul actual. Dacă nu aveți nevoie de aplicația sau scriptul dvs. pentru a face toate aceste lucruri, luați în considerare folosind o sarcină programată în schimb.

                                Postări asemănatoare:


                                12.11.2020