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 *-Service
szerezheti 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