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
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
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..