Kako stvoriti Windows uslugu

Ponekad vam je potrebna aplikacija ili skripta za nastavak rada bez obzira na to jeste li prijavljeni na računalo ili ne. Možda je to PowerShell skripta za praćenje portova(PowerShell script to monitor ports) ili web poslužitelj koji hostira stranicu na vašoj kućnoj mreži(web server hosting a page on your home network) .

Poanta je da ako želite da proces, skripta ili program rade sve dok je računalo uključeno, morat ćete stvoriti uslugu Windows(Windows Service) .

Što mi je potrebno za stvaranje Windows usluge?(What Do I Need to Create a Windows Service?)

Da biste stvorili Windows uslugu u sustavu Windows 10(Windows 10) , postoji nekoliko preduvjeta: 

  • Administratorski(Administrator) pristup na računalu
  • Nešto za pokretanje kao usluga ( PowerShell skripta(PowerShell Script) , program itd.)
  • Instaliran je Non-Sucking Service Manager ( NSSM ) .

Što je upravitelj usluga bez sisanja?(What Is the Non-Sucking Service Manager?)

Da, ne možete izbaciti takvo ime bez objašnjenja. Naravno da je ime nesretno, ali je točno. Non-Sucking Service Manager ( NSSM ) vjerojatno je najlakši način za stvaranje Windows usluge koja je i vrlo pouzdana i podesiva. Osim toga, besplatan je i softver otvorenog koda(Open Source Software) (OSS).

NSSM se može koristiti putem Windows Command Prompt -a ili grafičkog korisničkog sučelja ( GUI ). To znači da ga svatko može koristiti. NSSM se može koristiti na bilo kojoj verziji sustava Windows koja se vraća na, uključujući, Windows 2000 . Postoje 32-bitne i 64-bitne(32-bit and 64-bit) verzije. Ako koristite 64-bitno računalo, prvo isprobajte tu verziju. Ako ne uspije, vratite se na 32-bitnu verziju. 

NSSM možete preuzeti s web stranice(download NSSM from the website) , klonirati NSSM s Gita(clone NSSM from Git) ili instalirati NSSM s Chocolatey(install NSSM with Chocolatey) . Chocolatey je upravitelj paketa za Windows(Chocolatey is a package manager for Windows) . Metode instalacije(Installation) će se razlikovati ovisno o tome kojim putem idete. Molimo(Please) pogledajte upute NSSM -a. (NSSM)Za naš primjer, preuzimamo s web- mjesta NSSM(NSSM) - a i instaliramo ga u C:\WINDOWS\system32 .

Stvorite Windows uslugu s NSSM-om(Create a Windows Service With NSSM)

Za ovaj primjer, kreirat ćemo uslugu iz PowerShell skripte(PowerShell script) za bilježenje prosječnog postotka opterećenja CPU-a(CPU average load percentage)

  1. Kopirajte i spremite ovu skriptu kao log-CPULoadPercentage.ps1 na mjesto kojem nitko drugi vjerojatno neće pristupiti. Pokušajte stvoriti direktorij C:/Scripts i pohraniti ga tamo. Također stvorite mapu u Skriptama(Scripts) pod nazivom Dnevnici(Logs) . Imajte na umu da je put do skripte C:/Scripts/log-CPULoadPercentage.ps1 . To će ti trebati kasnije.

Napomena(Note) : Svi redovi ispod praćeni simbolom # su komentari i neće utjecati na skriptu.

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 se može učiniti u Windows Command Prompt ili PowerShell. Otvorite ga kao administrator(Open it as Administrator) .
  2. Unesite naredbu nssm install logCPUAvg i pokrenite je. Otvorit će se prozor programa za instalaciju NSSM usluge(NSSM service installer) .

  1. Kliknite(Click) na gumb elipse pored polja Put(Path:) :, idite na powershell.exe koji se inače nalazi na C:\Windows\System32\ . Odaberite powershell.exe. Polja Path: i Startup directory: automatski će se popuniti.

  1. Unesite sljedeće u polje Arguments: -ExecutionPolicy -ExecutionPolicy Bypass -NoProfile -File “C:\PathToScript\get-Script.ps1” , gdje je zadnji dio put do vaše PowerShell skripte i naziv skripte.  

  1. Odaberite karticu Detalji(Details) . Unesite ono što želite da se usluga prikazuje kao u upravitelju Windows usluga(Services) u polje Display name:. (Display name: )Zatim unesite što radi u polje Opis :. (Description:)Vrsta pokretanja:(Startup type: ) može se postaviti kao Automatski(Automatic) , Automatski (odgođeni početak)(Automatic (Delayed Start)) , Ručno(Manual) ili Onemogućeno(Disabled) . Za ovu vježbu, Automatsko(Automatic) je dobro.

  1. Odaberite karticu Prijava(Log on ) . Odaberite radio gumb Ovaj račun(This account) : i unesite račun i lozinku pod kojima će se usluga pokrenuti. Morat ćete odabrati račun pod kojim će se usluga pokrenuti. U idealnom slučaju, imat ćete Windows račun kreiran samo za pokretanje ove usluge. Dozvole ovog računa trebaju biti ograničene samo na ono što usluga treba učiniti. Možete odabrati račun lokalnog sustava(Local System account) , ali se to ne preporučuje iz sigurnosnih razloga.

Postoji nekoliko drugih kartica koje se mogu koristiti za prilagodbu usluge. Za ovu vježbu dovoljne su zadane vrijednosti u tim karticama. Odaberite gumb Instaliraj uslugu .(Install service )

  1. Kada je usluga instalirana, vidjet ćete da je Service “logCPUAvg” installed successfully! prozor. Odaberite OK da biste ga zatvorili. Time je instalacija završena.

  1. Otvorite Windows Services Manager i provjerite postoji li usluga.

  1. Pokrenite(Run) uslugu kako biste bili sigurni da će raditi.

  1. Da biste provjerili radi li se ova usluga, upotrijebite File Explorer za navigaciju do mjesta gdje bi dnevnik trebao biti spremljen da vidite postoji li.

nssm-check-log.png

Uklanjanje usluge Windows pomoću NSSM-a(Removing a Windows Service With NSSM)

Možda više ne trebate pratiti(monitor your CPU) opterećenje CPU-a, pa biste se htjeli riješiti usluge. Srećom, NSSM to olakšava. 

  1. U upravitelju Windows usluga(Windows Services Manager) zaustavite uslugu. Učinite to odabirom usluge Log CPU Average Load , a zatim odabirom kvadratnog gumba za zaustavljanje na alatnoj traci ili veze Zaustavi uslugu(Stop the service) na lijevoj strani.

  1. Otvorite ili Windows Command Prompt ili PowerShell kao administrator.
  2. Unesite naredbu nssm remove logCPUAvg i izvršite naredbu. 

  1. NSSM će od vas tražiti da potvrdite. Odaberite Da(Yes) .

  1. Kada se usluga ukloni, vidjet ćete da je Service “logCPUAvg” removed successfully! Potvrda. Odaberite U redu(OK) i gotovi ste.

To je sve. Dobro je provjeriti upravitelja usluga kako biste bili sigurni da usluga više nije tu. Ako i dalje vidite uslugu, možda ćete morati osvježiti zaslon i trebao bi nestati.

Usluge su izvrstan način za pokretanje aplikacija ili skripti koje se moraju izvoditi cijelo vrijeme, ponovno se pokrenuti ako ne uspiju ili trebaju privilegije drugačije od trenutačnog korisnika. Ako ne trebate svoju aplikaciju ili skriptu za sve te stvari, razmislite o korištenju zakazanog zadatka(using a Scheduled Task) .



About the author

Ja sam stručnjak za korisničku podršku za Windows 10/11/10 s više od 5 godina iskustva. Također sam strastveni igrač posljednjih nekoliko godina i snažno me zanima xbox One. Moj trenutni fokus je pomaganje korisnicima s problemima koje imaju sa svojim Windows 10 ili Windows 11 sustavima, često kroz korištenje naših alata za korisničku podršku, kao što je podrška pozivnog centra i online pomoć.



Related posts