Szolgáltatások kezelése

Ez a minta csak a Windows PowerShell 5.1-et érinti.

Nyolc alapvető szolgáltatásparancsmag létezik, amelyek a szolgáltatásfeladatok széles skáláját szolgálják. Ez a cikk csak a szolgáltatások futó állapotának felsorolását és módosítását ismerteti. A szolgáltatásparancsmagok listáját a következővel Get-Command *-Serviceszerezheti be: . Az egyes parancsmagokról az alábbi parancsmagok segítségével Get-Help <Cmdlet-Name>talál információt:Get-Help New-Service

Szolgáltatások lekérése

A szolgáltatásokat helyi vagy távoli számítógépen is lekérheti a Get-Service parancsmag használatával. Ahogy az is Get-Process, hogy a Get-Service parancs paraméterek nélküli használata az összes szolgáltatást visszaadja. Név alapján is szűrhet, akár csillagot helyettesítő karakterként is:

PS> Get-Service -Name se*

Status   Name               DisplayName
------   ----               -----------
Running  seclogon           Secondary Logon
Running  SENS               System Event Notification
Stopped  ServiceLayer       ServiceLayer

Mivel nem mindig látható, hogy mi a szolgáltatás valódi neve, előfordulhat, hogy megjelenítendő név alapján kell keresnie a szolgáltatásokat. Kereshet adott név alapján, használhat helyettesítő karaktereket, vagy megjelenítheti a megjelenítendő nevek listáját:

PS> Get-Service -DisplayName se*

Status   Name               DisplayName
------   ----               -----------
Running  lanmanserver       Server
Running  SamSs              Security Accounts Manager
Running  seclogon           Secondary Logon
Stopped  ServiceLayer       ServiceLayer
Running  wscsvc             Security Center

PS> Get-Service -DisplayName ServiceLayer, Server

Status   Name               DisplayName
------   ----               -----------
Running  lanmanserver       Server
Stopped  ServiceLayer       ServiceLayer

Távoli szolgáltatások lekérése

A Windows PowerShell használatával a parancsmag ComputerName paraméterével Get-Service lekérheti a szolgáltatásokat a távoli számítógépeken. A ComputerName paraméter több értéket és helyettesítő karaktert is elfogad, így egyetlen paranccsal több számítógépen is lekérheti a szolgáltatásokat. A következő parancs például lekéri a szolgáltatásokat a Server01 távoli számítógépen.

Get-Service -ComputerName Server01

A PowerShell 6.0-tól kezdve a *-Service parancsmagok nem rendelkeznek a ComputerName paraméterével . Továbbra is lekérheti a szolgáltatásokat a távoli számítógépeken a PowerShell-remoting használatával. A következő parancs például lekéri a szolgáltatásokat a Server02 távoli számítógépen.

Invoke-Command -ComputerName Server02 -ScriptBlock { Get-Service }

A többi *-Service parancsmaggal is kezelheti a szolgáltatásokat. A PowerShell-újraegyezésről további információt a about_Remote című témakörben talál.

Szükséges és függő szolgáltatások lekérése

A Get-Service parancsmagnak két paramétere van, amelyek nagyon hasznosak a szolgáltatásfelügyeletben. A DependServices paraméter lekéri a szolgáltatástól függő szolgáltatásokat.

A RequiredServices paraméter lekéri azokat a szolgáltatásokat, amelyektől a LanmanWorkstation szolgáltatás függ.

PS> Get-Service -Name LanmanWorkstation -RequiredServices

Status   Name               DisplayName
------   ----               -----------
Running  MRxSmb20           SMB 2.0 MiniRedirector
Running  bowser             Bowser
Running  MRxSmb10           SMB 1.x MiniRedirector
Running  NSI                Network Store Interface Service

A DependentServices paraméter lekéri a LanmanWorkstation szolgáltatást igénylő paramétert.

PS> Get-Service -Name LanmanWorkstation -DependentServices

Status   Name               DisplayName
------   ----               -----------
Running  SessionEnv         Terminal Services Configuration
Running  Netlogon           Netlogon
Stopped  Browser            Computer Browser
Running  BITS               Background Intelligent Transfer Ser...

Az alábbi parancs lekéri az összes függőséget tartalmazó szolgáltatást. A Format-Table szolgáltatások Állapot, Név, RequiredServices és DependentServices tulajdonságainak megjelenítésére használt parancsmag.

Get-Service -Name * | Where-Object {$_.RequiredServices -or $_.DependentServices} |
  Format-Table -Property Status, Name, RequiredServices, DependentServices -auto

Szolgáltatások leállítása, indítása, felfüggesztése és újraindítása

A szolgáltatásparancsmagok mindegyike ugyanazzal az általános formával rendelkezik. A szolgáltatások megadhatóak köznapi névvel vagy megjelenítendő névvel, és a listákat és helyettesítő karaktereket értékként használhatják. A nyomtatásisor-kezelő leállításához használja a következőt:

Stop-Service -Name spooler

Ha a nyomtatásisor-kezelőt leállítás után szeretné elindítani, használja a következőt:

Start-Service -Name spooler

A nyomtatásisor-kezelő felfüggesztéséhez használja a következőt:

Suspend-Service -Name spooler

A Restart-Service parancsmag ugyanúgy működik, mint a többi szolgáltatásparancsmag:

PS> Restart-Service -Name spooler

WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
PS>

Figyelje meg, hogy ismétlődő figyelmeztető üzenet jelenik meg a nyomtatásisor-kezelő indításával kapcsolatban. Ha egy bizonyos ideig tartó szolgáltatásműveletet hajt végre, a PowerShell értesíti, hogy továbbra is megpróbálja végrehajtani a feladatot.

Ha több szolgáltatást szeretne újraindítani, lekérheti a szolgáltatások listáját, szűrheti őket, majd végrehajthatja az újraindítást:

PS> Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service

WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping...
WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping...
Restart-Service : can't stop service 'Logical Disk Manager (dmserver)' because
 it has dependent services. It can only be stopped if the Force flag is set.
At line:1 char:57
+ Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service <<<<
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...

Ezek a szolgáltatásparancsmagok nem rendelkeznek ComputerName paraméterrel, de a parancsmag használatával Invoke-Command távoli számítógépen futtathatja őket. Az alábbi parancs például újraindítja a Spooler szolgáltatást a Server01 távoli számítógépen.

Invoke-Command -ComputerName Server01 {Restart-Service Spooler}

Szolgáltatástulajdonságok beállítása

A Set-Service parancsmag megváltoztatja egy szolgáltatás tulajdonságait egy helyi vagy távoli számítógépen. Mivel a szolgáltatás állapota tulajdonság, ezzel a parancsmaggal elindíthat, leállíthat és felfüggeszthet egy szolgáltatást. A Set-Service parancsmag egy StartupType paraméterrel is rendelkezik, amely lehetővé teszi a szolgáltatás indítási típusának módosítását.

A Windows Vista és a Windows újabb verzióiban való használathoz Set-Service nyissa meg a PowerShellt a Futtatás rendszergazdaként lehetőséggel.

További információ: Set-Service

Lásd még