Szolgáltatások kezelése
Ez a példa csak a Windows PowerShell 5.1-re vonatkozik.
Nyolc alapvető Service-parancsmag létezik, amelyeket a szolgáltatási feladatok széles körére terveztek. Ez a cikk csak a szolgáltatások listázásával és futó állapotának módosításával foglalkozik. A szolgáltatás-parancsmagok listáját a Get-Command *-Service használatával kaphatja meg. Az egyes parancsmagokról a Get-Help Get-Help New-Service segítségével.
Szolgáltatások megszerzése
A szolgáltatásokat helyi vagy távoli számítógépen érheti el a Get-Service parancsmag használatával. Akárcsak a Get-Process esetében, a Get-Service parancs paraméterek nélküli használata minden szolgáltatást visszaad. Szűrhet név szerint, még akkor is, ha csillagot használ 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 egyértelmű, hogy mi a szolgáltatás valódi neve, előfordulhat, hogy a szolgáltatásokat megjelenített név alapján kell megkeresnie. Kereshet adott név alapján, használhat helyettesítő karaktereket, vagy megadhatja a megjelenített 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 igénybevétele
A Windows PowerShell használatával a Get-Service parancsmag ComputerName paraméterével érheti el a szolgáltatásokat 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 elérheti a szolgáltatásokat. Például a következő parancs 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éterrel. A PowerShell-távolással továbbra is elérheti a szolgáltatásokat távoli számítógépeken. Például a következő parancs lekéri a szolgáltatásokat a Server02 távoli számítógépen.
Invoke-Command -ComputerName Server02 -ScriptBlock { Get-Service }
A szolgáltatásokat a többi *-Service parancsmaggal is kezelheti. A PowerShell-távolról további információért lásd: about_Remote.
Szükséges és függő szolgáltatások igénybevétele
A Get-Service parancsmagnak két olyan paramétere van, amelyek nagyon hasznosak a szolgáltatás adminisztrációjában. A DependentServices paraméter a szolgáltatástól függő szolgáltatásokat kapja meg.
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
A DependentServices paraméter a LanmanWorkstation szolgáltatást igényli.
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...
A következő parancs lekéri az összes függőséggel rendelkező szolgáltatást. A Format-Table parancsmag az Status, Name, RequiredServices és DependentServices megjelenítéséhez > a szolgáltatások tulajdonságait.
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 Service-parancsmagok azonos általános formájúak. A szolgáltatások megadhatók köznévvel vagy megjelenített névvel, és értékként listákat és helyettesítő karaktereket vehetnek fel. A nyomtatási sorkezelő leállításához használja:
Stop-Service -Name spooler
A nyomtatási spooler leállítása utáni elindításához használja:
Start-Service -Name spooler
A nyomtatási spooler felfüggesztéséhez használja:
Suspend-Service -Name spooler
Az Restart-Service parancsmag ugyanúgy működik, mint a többi szolgáltatás parancsmag:
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ő üzenetet kap a Print Spooler elindulásáról. Ha olyan szervizműveletet hajt végre, amely némi időt vesz igénybe, a PowerShell értesíti, hogy még mindig 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 Service-parancsmagok nem rendelkeznek ComputerName paraméterrel, de futtathatók távoli számítógépen az Invoke-Command parancsmag használatával. A következő 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ás tulajdonságainak beállítása
A Set-Service parancsmag megváltoztatja a szolgáltatás tulajdonságait egy helyi vagy távoli számítógépen. Mivel a szolgáltatás állapota egy tulajdonság, ezzel a parancsmaggal elindíthatja, leállíthatja és felfüggesztheti a 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 Set-Service használatához Windows Vista és a Windows újabb verziói esetén nyissa meg a PowerShellt a Futtatás rendszergazdaként lehetőséggel.
További információkért lásd: Set-Service
Lásd még
- about_Remote
- Get-Service
- Set-Service
- Restart-Service
- Suspend-Service