Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato ukázka platí jenom pro Windows PowerShell 5.1.
K dispozici je osm základních rutin Service, které jsou navržené pro širokou škálu úloh služby . Tento článek popisuje pouze výpis a změnu stavu běhu služeb. Seznam cmdletů služby můžete získat pomocí Get-Command *-Service
. Informace o jednotlivých příkazech najdete pomocí Get-Help <Cmdlet-Name>
, například Get-Help New-Service
.
Získání služeb
Služby můžete získat na místním nebo vzdáleném počítači pomocí rutiny Get-Service
. Stejně jako u Get-Process
vrátí příkaz Get-Service
bez parametrů všechny služby. Můžete filtrovat podle názvu, i když jako zástupný znak použijete hvězdičku:
PS> Get-Service -Name se*
Status Name DisplayName
------ ---- -----------
Running seclogon Secondary Logon
Running SENS System Event Notification
Stopped ServiceLayer ServiceLayer
Vzhledem k tomu, že není vždy zřejmé, jaký je skutečný název služby, možná budete muset najít služby podle zobrazovaného názvu. Můžete hledat podle konkrétního názvu, použít zástupné kóty nebo zadat seznam zobrazovaných názvů:
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
Získání vzdálených služeb
V prostředí Windows PowerShell můžete pomocí parametru ComputerName rutiny Get-Service
získat služby na vzdálených počítačích. Parametr ComputerName přijímá více hodnot a zástupných znaků, takže služby můžete získat na více počítačích jediným příkazem. Například následující příkaz získá služby na vzdáleném počítači Server01.
Get-Service -ComputerName Server01
Počínaje verzí PowerShellu 6.0 nemají cmdlety *-Service
parametr ComputerName. Služby můžete dál využívat na vzdálených počítačích pomocí vzdálené komunikace PowerShellu. Například následující příkaz získá služby na vzdáleném počítači Server02.
Invoke-Command -ComputerName Server02 -ScriptBlock { Get-Service }
Služby můžete spravovat také pomocí dalších rutin *-Service
. Další informace o vzdálené komunikaci PowerShellu najdete v tématu about_Remote.
Získání požadovaných a závislých služeb
Cmdlet Get-Service má dva parametry, které jsou velmi užitečné při správě služeb. Parametr DependentServices získá služby, které závisí na službě.
Parametr RequiredServices získá služby, na kterých závisí služba LanmanWorkstation.
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
Parametr DependentServices získá služby, které vyžadují službu LanmanWorkstation.
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...
Následující příkaz získá všechny služby, které mají závislosti. Cmdlet Format-Table
pro zobrazení vlastností služeb: Stav, Název, Požadované službya Závislé služby.
Get-Service -Name * | Where-Object {$_.RequiredServices -or $_.DependentServices} |
Format-Table -Property Status, Name, RequiredServices, DependentServices -Auto
Zastavení, spuštění, pozastavení a restartování služeb
Všechny cmdlety služby mají stejný obecný formát. Služby je možné zadat běžným názvem nebo zobrazovaným názvem a přijímat seznamy a zástupné znaky jako hodnoty. Pokud chcete zastavit tiskovou frontu, použijte:
Stop-Service -Name spooler
Pokud chcete spustit zařazování tisku po jeho zastavení, použijte:
Start-Service -Name spooler
Chcete-li pozastavit zařazování tisku, použijte:
Suspend-Service -Name spooler
Rutina Restart-Service
funguje stejným způsobem jako ostatní rutiny služby:
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>
Všimněte si, že se zobrazí opakované upozornění, že se služba zařazování tisku spouští. Když provedete operaci služby, která nějakou dobu trvá, PowerShell vás upozorní, že se stále pokouší provést úlohu.
Pokud chcete restartovat více služeb, můžete získat seznam služeb, filtrovat je a pak provést restartování:
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...
Tyto rutiny služby nemají parametr ComputerName, ale můžete je spustit na vzdáleném počítači pomocí rutiny Invoke-Command
. Například následující příkaz restartuje tiskovou službu na vzdáleném počítači Server01.
Invoke-Command -ComputerName Server01 {Restart-Service Spooler}
Nastavení vlastností služby
Rutina Set-Service
změní vlastnosti služby na místním nebo vzdáleném počítači. Vzhledem k tomu, že stav služby je vlastnost, můžete tuto rutinu použít ke spuštění, zastavení a pozastavení služby.
Rutina Set-Service má také parametr StartupType, který umožňuje změnit typ spuštění služby.
Pokud chcete používat Set-Service
ve Windows Vista a novějších verzích Windows, otevřete PowerShell s možností Spustit jako správce.
Další informace najdete v tématu Set-Service