Upravljanje Windows storitev s programom PowerShell

V operacijskem sistemu Windows lahko storitve upravljate ne le z grafično konzolo services.msc ali pripomočkom ukazne vrstice Sc.exe (prvotno je vključena v komplet Resource), temveč tudi s pomočjo PowerShell-a. V tem članku si ogledamo različne scenarije za upravljanje storitev Windows z uporabo PowerShell-a..

Vsebina:

  • Osnovni ukazni elementi PowerShell za upravljanje storitev Windows
  • Ustavite, zaženite, začasno ustavite in znova zaženite storitve iz PowerShell-a
  • Set-Service - spremenite nastavitve storitve Windows
  • Ustvarjanje in odstranjevanje storitev Windows s programom PowerShell
  • Za začetek storitve spremenite račun

Osnovni ukazni elementi PowerShell za upravljanje storitev Windows

Obstaja osem jedrnih ukaznih servisov, ki so zasnovani za pregled stanja in upravljanje storitev Windows.

Če želite dobiti celoten seznam cmdlet storitev, vnesite ukaz:

Pridobite pomoč \ * - Storitev

  • Pridobite storitev - omogoča pridobivanje storitev v lokalnem ali oddaljenem računalniku, tako zagnane kot ustavljene;
  • Nova storitev - ustvarite storitev. Ustvari nov vnos za storitev Windows v bazi registrov in storitev;
  • Ponovno zaženite storitev - znova zaženite storitev. Pošlje sporočilo o ponovnem zagonu storitve prek Windows Service Controllerja
  • Nadaljujte s storitvijo - nadaljujte s storitvijo. Pošlje nadaljevalno sporočilo upravitelju storitev Windows;
  • Set-storitev - Spremenite lokalne ali oddaljene nastavitve storitev, vključno s statusom, opisom, prikaznim imenom in načinom zagona. Ta cmdlet se lahko uporablja tudi za zagon, zaustavitev ali zaustavitev storitve;
  • Start-storitev - zagon storitve;
  • Ustavi storitev - ustavite storitev (pošlje sporočilo o zaustavitvi upravitelju storitve Windows);
  • Prekini storitev začasno ustavi storitev. Zaustavljena storitev še vedno deluje, vendar preneha delovati, dokler se storitev ne nadaljuje, na primer z uporabo ukaznega seznama Resume-Service.

Za podroben opis in primere uporabe določenega ukaznega orodja uporabite Get-help:

Get-Help Start-Service

Get-Service: dobite seznam storitev in njihov status

Seznam in status (Zagon / Zaustavitev) storitve na lokalnem ali oddaljenem računalniku je mogoče dobiti z ukaznim ukazom Pridobite storitev. Možnost -Name omogoča izbiro po imenu storitve. Ime storitve lahko določite z uporabo nadomestnega znaka *.

Če ne veste natančnega imena storitve, je mogoče s parametrom poiskati storitve po prikaznem imenu -Prikazno ime. Lahko uporabite seznam vrednosti in nadomestnih znakov.

.

Cmdlet Pridobite storitev je mogoče uporabiti za pridobitev statusa storitev na oddaljenih računalnikih z navedbo parametra -Ime računalnika. V številnih oddaljenih računalnikih lahko takoj poizvedete o stanju storitve, njihova imena morajo biti navedena z vejico. Naslednji ukaz na primer dobi status storitve Spooler na oddaljenih računalnikih RM1 in RM2.

Spooler za Get-Service -ComputerName RM1, RM2

Status Ime DisplayName ------ ---- ----------- Teče tuljava Tiskalni tuljava Ustavljen planer Tiskalni planer

V ukaznem oknu Select-Object bodo prikazane vse lastnosti storitev:

Spooler za Get-Service | Izberi predmet *

Cmdlet Izberi predmet prikaže določene lastnosti storitve. Na primer, moramo prikazati ime, stanje in razpoložljive funkcije storitve Spooler:

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

Cmdlet Pridobite storitev ima dva parametra, ki omogočata pridobivanje odvisnosti od storitve:

  • Parameter -DependentServices omogoča prikaz storitev, ki so odvisne od te storitve;
  • Parameter -Obvezne storitve omogoča prikaz storitev, od katerih je odvisna ta storitev.

Naslednji ukaz prikazuje storitve, potrebne za zagon storitve Spooler:

Get-Service -Name Spooler - Zahtevane storitve

Naslednji ukaz prikazuje storitve, ki so odvisne od storitve Spooler:

Get-Service -Name Spooler -DependentServices

Če morate poiskati storitve z določenim stanjem ali nastavitvami, uporabite cmdlet Kjer-objekt. Na primer dobimo seznam izvajalskih storitev s statusom Teče:

Get-Service | Kjer-Predmet $ _. Status -eq 'teče'

Če želite prikazati storitve z zagonom vrste Manual, zaženite ukaz

Get-Service | Kjer-Predmet $ _. Starttype -eq 'Manual'

Preverite, ali ima sistem določeno storitev:

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

Gostitelj pisanja "ServiceTest obstaja"

Ustavite, zaženite, začasno ustavite in znova zaženite storitve iz PowerShell-a

Storitev lahko prekinete s pomočjo cmdlet-a Ustavi storitev. Če želite ustaviti storitev tiskanja, zaženite ukaz:

Stop-Service -Name puler

Cmdlet Stop-Service po izvedbi ne prikaže nobenih podatkov. Če želite videti rezultat ukaza, uporabite parameter -PassThru.

Upoštevajte, da ni mogoče ustaviti vsake storitve. Če obstajajo odvisne storitve, dobite napako

Storitve ni mogoče ustaviti, ker ima odvisne storitve. Ustaviti ga je mogoče le, če je nastavljena zastava sile.

Za zaustavitev uporabite parameter -Sila. Ne pozabite, da se bodo ustavile tudi vse odvisne storitve:

Stop-Service samss -Force -Passthru

Naslednji ukaz ustavi navedene storitve (bitov, pulerja) s statusom "Teče":

biti za servisiranje, puler | kjer $ _. status -eq 'teče' | stop-Service -passthru

Včasih storitve zamrznejo v statusu Zaustavitev in njihovi procesi morajo biti prisilno prekinjeni.

Cmdlet Start-storitev začne ustaviti storitve:

Start-Service -Namizvajalec -PassThru

Storitev se ne bo začela, če so zaustavljene odvisne storitve. Če jih želite najti in omogočiti:

getss storitev samss | Foreach start-service $ _. Ime -passthru; start-service $ _. DependentServices -passthru

Cmdlet Prekini storitev lahko začasno prekine storitve, ki omogočajo začasno zaustavitev in nadaljevanje. Z cmdletom pridobite informacije o možnosti začasne zaustavitve določene storitve. Pridobite storitev z nepremičnino "CanPauseAndContinue".

Get-Service samss | Ime formata-seznama se lahko zaustavi in ​​nadaljuje

Če želite prikazati seznam vseh storitev, ki jih je mogoče začasno ustaviti, vnesite ukaz:

Get-Service | Kje-objekt $ _. Canpauseandcontinue -eq "True"

Zaustavite storitev SQLBrowser:

Suspend-Service -Name SQLBrowser

Če želite nadaljevati zaustavljeno storitev, uporabite cmdlet Nadaljuj-storitev:

Nadaljuj-Service -Name SQLBrowser

Naslednji ukaz nadaljuje vse zaustavljene storitve:

zaslužiti | kjer-objekt $ _. Status -eq "Zaustavljen" | nadaljuj-storitev

Cmdlet Ponovno zaženite storitev znova zažene storitev:

Restart-Service -Nametični puler

Ta ukaz zažene vse ustavljene omrežne storitve računalnika:

mreža za pridobivanje storitev * | kjer-objekt $ _. Status -eq "Zaustavljen" | ponovni zagon storitve

Parameter -Ime računalnika teh cmdletov manjka, vendar jih je mogoče zagnati na oddaljenem računalniku z uporabo cmdlet-a Pokliči ukaz ali preko cevi:

Če želite na primer znova zagnati čakalno vrsto tiskanja na oddaljenem računalniku RM1, zaženite ukaz:
Get-Service Spooler -ComputerName RM1 | Start-storitev

Storitve v operacijskem sistemu Windows privzeto lahko zaženejo ali ustavijo samo skrbniki, vendar lahko dodelite privilegije za ponovno zagon določene storitve navadnim uporabnikom.

Set-Service - spremenite nastavitve storitve Windows

Cmdlet Set-storitev omogoča spreminjanje nastavitev ali nastavitev storitev na lokalnem ali oddaljenem računalniku. Ker je status storitve lastnost, se lahko ta cmdlet uporabi za zagon, zaustavitev in začasno zaustavitev storitve. Cmdlet Set-storitev ima parameter -Startuptip, kar vam omogoča, da spremenite vrsto začetka storitve.

Spremenite vrsto zagona storitve sputa v samodejni:

Set-Service puter - startuptip samodejno -passthru

Storitev lahko prenesete na ročni zagon:

Set-Service puter - priročnik za zagon -passthru

Ustvarjanje in odstranjevanje storitev Windows s programom PowerShell

Nova storitev - cmdlet za ustvarjanje nove storitve v sistemu Windows. Za novo storitev morate določiti ime in izvršljivo datoteko (skript PowerShell lahko zaženete kot storitev Windows).

V primeru ustvarite novo storitev, imenovano TestService.

novo ime storitve TestService -binaryPathName "C: \ WINDOWS \ System32 \ svchost.exe -k netsvcs"

S parametrom Get-WmiObject dobimo informacije o načinu zagona in opisu storitve

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

Z ukazom lahko spremenite parametre nove storitve

Set-Service -Name TestService -Opis "Moja storitev" -StartupType Manual

Za odstranitev storitve uporabite ukaz

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

Za začetek storitve spremenite račun

Lahko spremenite račun, pod katerim se storitev začne. Pridobite ime računa, ki se uporablja za zagon TestService

get-wmiobject win32_service -filter "name = 'TestService'" | Izberite ime, začetno ime

Če želite spremeniti ime in geslo računa, izvedite ukaze.

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

Kot rezultat dobimo seznam parametrov metode Change (). Upoštevamo, kje se nahajata parametra StartName in StartPassword - 20 oziroma 21 mest.

$ 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")

Lahko pa določite ime računa gMSA. Geslo ni določeno.

Kot vidite, PowerShell olajša upravljanje storitev Windows. Storitve lahko ustvarite, ustavite, zaženete in nadaljujete, spremenite njihove lastnosti. Večina cmdletov vam omogoča upravljanje storitev na oddaljenih računalnikih..