Upravljanje Windows uslugama pomoću PowerShell-a

U sustavu Windows možete upravljati uslugama ne samo iz grafičke konzole services.msc ili uslužnog naredbenog retka Sc.exe (izvorno uključeno u Resource Kit), već i pomoću PowerShell-a. U ovom ćemo članku razmotriti različite scenarije za upravljanje Windows uslugama pomoću PowerShell-a..

sadržaj:

  • Osnovni PowerShell cmdleti za upravljanje Windows uslugama
  • Zaustavite, pokrenite, pauzirajte i ponovno pokrenite usluge iz PowerShell-a
  • Set-Service - promijenite postavke usluge Windows
  • Stvaranje i uklanjanje Windows usluga pomoću PowerShell-a
  • Promijenite račun da biste pokrenuli uslugu

Osnovni PowerShell cmdleti za upravljanje Windows uslugama

Postoji osam osnovnih jezgri Service Service dizajnirani za pregled stanja i upravljanje Windows uslugama.

Da biste dobili cijeli popis cmdleta usluge, unesite naredbu:

Pomoć i pomoć \ * - Usluga

  • Dohvati uslugu - omogućuje vam dobivanje usluga na lokalnom ili udaljenom računalu, i pokrenuto i zaustavljeno;
  • Nova usluga - stvoriti uslugu. Stvara novi unos za Windows uslugu u registru i bazi podataka usluga;
  • Ponovno pokrenite uslugu - ponovno pokrenite uslugu. Šalje poruku o ponovnom pokretanju usluge putem Windows servisnog kontrolera
  • Nastavi uslugu - nastaviti uslugu. Šalje životopisnu poruku upravitelju servisa Windows;
  • Set-usluga - Promijenite lokalne ili udaljene postavke usluge, uključujući status, opis, naziv prikaza i način pokretanja. Ovaj cmdlet se također može koristiti za pokretanje, zaustavljanje ili pauziranje usluge;
  • Start-usluga - pokrenuti uslugu;
  • Zaustavite uslugu - zaustaviti uslugu (šalje zaustavnu poruku Windows Service Manageru);
  • Obustavi uslugu pauzirajte uslugu. Obustavljena usluga i dalje radi, ali prestaje s radom dok se usluga ne nastavi, na primjer, pomoću cmdleta Resume-Service.

Za detaljan opis i primjere upotrebe određenog cmdleta koristite Get-help:

Get-Help Start-usluga

Get-Service: potražite popis usluga i njihov status

Popis i status (pokretanje / zaustavljanje) usluge na lokalnom ili udaljenom računalu mogu se dobiti pomoću cmdleta Dohvati uslugu. Opcija -Name omogućuje odabir prema nazivu usluge. Naziv usluge može se odrediti pomoću zamjenskog znaka *.

Ako ne znate točan naziv usluge, moguće je pronaći usluge pomoću prikazanog imena koristeći parametar -DisplayName. Možete koristiti popis vrijednosti i zamjenskih znakova.

.

cmdlet Dohvati uslugu može se koristiti za dobivanje statusa usluga na udaljenim računalima navođenjem parametra -ComputerName. Na mnogim udaljenim računalima možete odmah zatražiti status usluge; njihova imena moraju biti navedena zarezom. Na primjer, sljedeća naredba dobiva status usluge Spooler na udaljenim računalima RM1 i RM2.

Spooler za dobivanje usluge -ComputerName RM1, RM2

Status Ime DisplayName ------ ---- ----------- Alat za puštanje alata Spooler za ispis Spooler zaustavljen planer Print Spooler

Cmdlet Select-Object prikazat će sva svojstva usluge:

Get-Service spiler | Select-Object *

cmdlet Odaberi-objekt prikazivat će određena svojstva usluge. Na primjer, moramo prikazati ime, status i dostupne značajke usluge Spooler:

Get-Service Spooler | Odaberite DisplayName, Status, ServiceName, Can *

cmdlet Dohvati uslugu ima dva parametra koja vam omogućavaju da dobijete ovisnosti o usluzi:

  • parametar -DependentServices omogućava vam prikazivanje usluga o kojima ovisi ova usluga;
  • parametar -RequiredServices omogućava vam prikaz usluga o kojima ova usluga ovisi.

Sljedeća naredba prikazuje usluge potrebne za pokretanje usluge Spooler:

Get-Service - Ime spoolera - Zahtijeva usluge

Sljedeća naredba prikazuje usluge koje ovise o usluzi Spooler:

Get-Service -Name Spooler -DependentServices

Ako trebate pronaći usluge s određenim stanjem ili postavkama, koristite cmdlet Gdje-objekt. Na primjer, dobivamo popis pokrenutih servisa sa statusom Running:

Get-Service | Gdje-objekt $ _. Status -eq 'trčanje'

Za prikaz usluga s vrstom pokretanja Manual (Ručno), pokrenite naredbu

Get-Service | Where-Objekt $ _. Starttype -eq 'Manual'

Provjerite ima li sustav navedenu uslugu:

ako (Get-Service "ServiceTest" -ErrorAction SilentlyContinue)

Domaćin pisanja "ServiceTest postoji"

Zaustavite, pokrenite, pauzirajte i ponovno pokrenite usluge iz PowerShell-a

Uslugu možete zaustaviti pomoću cmdleta Zaustavite uslugu. Da biste zaustavili uslugu ispisa, pokrenite naredbu:

Stop-Service -Ime spoolera

Cmdlet Stop-Service ne prikazuje nikakve podatke nakon izvršenja. Da biste vidjeli rezultat naredbe, koristite parametar -PassThru.

Imajte na umu da nije svaku uslugu moguće zaustaviti. Ako postoje ovisne usluge, dobijte pogrešku

Usluga se ne može zaustaviti jer ima ovisne usluge. Može se zaustaviti samo ako je postavljena zastava sile.

Za prisilno zaustavljanje koristite parametar -sila. Morate zapamtiti da će prestati i sve ovisne usluge:

Stop-Service samss -Force -Passthru

Sljedeća naredba zaustavit će navedene usluge (bitove, puler) sa statusom "Trčanje":

bitovi za dobivanje usluge, spiler | gdje je $ _. status -eq 'trčanje' | stop-usluga -passthru

Ponekad se usluge zamrzavaju u statusu Zaustavljanje i njihovi procesi moraju se prisilno prekinuti.

cmdlet Start-usluga pokreće zaustavljene usluge:

Start-Service - Naziv spoolera -PassThru

Usluga se neće pokrenuti ako postoje zaustavljene usluge ovisne. Da biste ih pronašli i omogućili:

dobiti-uslugu samss | Foreach start-service $ _. Ime -passthru; start-service $ _. DependentServices -passthru

cmdlet Obustavi uslugu može obustaviti usluge koje dopuštaju privremenu obustavu i nastavak. Koristite cmdlet da biste dobili informacije o mogućnosti privremenog obustavljanja određene usluge Dohvati uslugu s nekretninom "CanPauseAndContinue".

Samss-usluga dobivanja | Naziv popisa formata, možete pauzirati i nastaviti

Za prikaz popisa svih usluga koje se mogu pauzirati, unesite naredbu:

Get-Service | Where-Object $ _. Canpauseandcontinue -eq "Točno"

Obustavite uslugu SQLBrowser:

Suspend-Service -Name SQLBrowser

Za nastavak obustavljene usluge koristite cmdlet Nastavi-servis:

Resume-Service -Name SQLBrowser

Sljedeća naredba nastavlja sve pauzirane usluge:

dobiti uslugu | gdje-objekt $ _. Status -eq "Pauzirano" | rezime-servis

cmdlet Ponovno pokrenite uslugu ponovno pokreće uslugu:

Restart-Service -Ime spikera

Ova naredba pokreće sve zaustavljene mrežne usluge računala:

mreža za dobivanje usluge * | gdje-objekt $ _. Status -eq "Zaustavljen" | ponovno-servis

parametar -ComputerName ti cmdleti nedostaju, ali mogu se pokrenuti na udaljenom računalu pomoću cmdleta Nazovite naredbu ili putem cijevi:

Na primjer, da biste ponovno pokrenuli red čekanja za ispis na udaljenom računalu RM1, pokrenite naredbu:
Get-Service Spooler -ComputerName RM1 | Start-usluga

Prema administratoru samo administratori mogu pokrenuti / zaustaviti usluge u sustavu Windows, ali možete dodijeliti povlastice za ponovno pokretanje određene usluge običnim korisnicima.

Set-Service - promijenite postavke usluge Windows

cmdlet Set-usluga omogućuje vam promjenu postavki ili postavki usluga na lokalnom ili udaljenom računalu. Budući da je status usluge svojstvo, ovaj cmdlet može se koristiti za pokretanje, zaustavljanje i pauziranje usluge. cmdlet Set-usluga ima parametar -StartupType, omogućujući vam promjenu vrste početka usluge.

Promijenite vrstu pokretanja usluge putanja u automatski:

Set-Service spiler -startuptip automatski -passthru

Uslugu možete prenijeti na ručni početak:

Set-Service puler - priručnik za pokretanje tipa -passthru

Stvaranje i uklanjanje Windows usluga pomoću PowerShell-a

Nova usluga - cmdlet za stvaranje nove usluge u sustavu Windows. Za novu uslugu trebate navesti ime i izvršnu datoteku (skriptu PowerShell možete pokrenuti kao Windows uslugu).

U primjeru stvorite novu uslugu pod nazivom TestService.

new-service -name TestService -binaryPathName "C: \ WINDOWS \ System32 \ svchost.exe -k netsvcs"

Pomoću parametra Get-WmiObject dobivamo informacije o načinu pokretanja i opisu usluge

get-wmiobject win32_service -filter "name = 'testservice'"

Pomoću naredbe možete promijeniti parametre nove usluge

Set-Service -Name TestService -Opis "Moja usluga" -StartupType Priručnik

Za uklanjanje usluge koristite naredbu

(Get-WmiObject win32_service -Filter "name = 'TestService'") Izbriši ()

Promijenite račun da biste pokrenuli uslugu

Možete promijeniti račun pod kojim se usluga pokreće. Nabavite naziv računa koji se koristi za pokretanje TestService

get-wmiobject win32_service -filter "name = 'TestService'" | Odaberite ime, početno ime

Da biste promijenili ime i lozinku računa, izvršite naredbe.

$ svc = get-wmiobject win32_service -filter "name = 'TestService'"
$ svc.GetMethodParameters ("promjena")

Kao rezultat, dobivamo popis parametara metode Change (). Razmatramo gdje se nalaze parametri StartName i StartPassword - 20 odnosno 21 mjesto.

$ svc | Invoke-WmiMethod -Name Change -ArgumentList @ ($ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, "Administrator", "P @ ssw0rd")

Ili možete odrediti ime računa gMSA. Lozinka nije navedena.

Kao što vidite, PowerShell olakšava upravljanje Windows uslugama. Možete stvoriti, zaustaviti, pokrenuti i ponovo pokrenuti usluge, promijeniti njihova svojstva. Većina cmdleta omogućuje vam upravljanje uslugama na udaljenim računalima..