Správa služeb

Tato ukázka platí jenom pro Windows PowerShell 5.1.

K dispozici je osm základních rutin služby , které jsou navržené pro širokou škálu úloh služby . Tento článek se zabývá pouze výpisem a změnou stavu spuštění služeb. Seznam rutin služby můžete získat pomocí Get-Command *-Service. Informace o jednotlivých rutinách 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 v případě Get-Process, použití Get-Service příkazu bez parametrů vrátí 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

Pomocí Windows PowerShellu můžete pomocí parametru Get-Service ComputerName rutiny 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 PowerShellem 6.0 *-Service nemají rutiny parametr ComputerName . Služby můžete dál získat 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 *-Service rutin. Další informace o vzdálené komunikace PowerShellu najdete v tématu about_Remote.

Získání požadovaných a závislých služeb

Rutina 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á, který vyžaduje 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. Rutina Format-Table pro zobrazení vlastností Status, Name, RequiredServices a DependentServices služeb.

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 rutiny služby mají stejný obecný formulář. Služby je možné zadat běžným názvem nebo zobrazovanými názvy a jako hodnoty přebírat seznamy a zástupné cardy. Pokud chcete službu zařazování tisku zastavit, použijte:

Stop-Service -Name spooler

Pokud chcete po zastavení zařazování tisku spustit, 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á zpráva s upozorněním, ž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 službu zařazování 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 naleznete v tématu Set-Service

Viz také