Megosztás a következőn keresztül:


Szolgáltatások kezelése

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

Nyolc alapvető service parancsmag található, 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 Get-Command *-Servicehasználatával szerezheti be. Az egyes parancsmagokkal kapcsolatos információkat Get-Help <Cmdlet-Name>, például Get-Help New-Servicehasználatával találhatja meg.

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 parancsmaggal. Ahogy a Get-Process, a Get-Service parancs paraméter nélküli használata minden szolgáltatást visszaad. Név alapján szűrhet, akár csillagot is használhat helyettesítő karakterként.

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 Get-Service parancsmag ComputerName paraméterével 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. Például a következő parancs lekéri a Server02 távoli számítógép szolgáltatásait.

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

A többi *-Service parancsmaggal is kezelheti a szolgáltatásokat. További információ a PowerShell távoli feladatvégrehajtásáról: about_Remote.

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 olyan szolgáltatásokat kap, 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

Az DependentServices paraméter lekéri azokat a szolgáltatásokat, amelyek a LanmanWorkstation szolgáltatást igénylik.

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 Állapot, Név, RequiredServicesés DependServices tulajdonságainak megjelenítéséhez használt Format-Table 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ási sor leállításához használja a következőt:

Stop-Service -Name spooler

A nyomtatási sor kezelő újraindításához a leállítás után használja a következő lépéseket.

Start-Service -Name spooler

A nyomtatási sor 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 Invoke-Command parancsmaggal futtathatók távoli számítógépen. 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 módosítja 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 rendelkezik egy StartupType paraméterrel is, 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 a Set-Service használatához nyissa meg a PowerShellt a Futtatás rendszergazdaként lehetőséggel.

További információért lásd: Set-Service

Lásd még