Hantera tjänster

Det finns åtta kärniga service-cmdlets som är utformade för en mängd olika tjänstuppgifter. Vi tittar bara på att lista och ändra körningstillstånd för tjänster, men du kan hämta en lista över tjänst-cmdlets med hjälp av , och du kan hitta information om varje Get-Help *-Service tjänst-cmdlet med hjälp av , till exempel Get-Help <Cmdlet-Name> Get-Help New-Service .

Hämta tjänster

Du kan hämta tjänsterna på en lokal dator eller en fjärrdator med hjälp av Get-Service cmdleten . Precis som Get-Process med returnerar kommandot Get-Service utan parametrar alla tjänster. Du kan filtrera efter namn, även om du använder en asterisk som jokertecken:

PS> Get-Service -Name se*

Status   Name               DisplayName
------   ----               -----------
Running  seclogon           Secondary Logon
Running  SENS               System Event Notification
Stopped  ServiceLayer       ServiceLayer

Eftersom det inte alltid är uppenbart vad det verkliga namnet för tjänsten är kan du behöva hitta tjänster efter visningsnamn. Du kan göra detta med ett visst namn, med jokertecken eller med hjälp av en lista över visningsnamn:

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

Du kan använda parametern ComputerName i cmdleten Get-Service för att hämta tjänster på fjärrdatorer. Parametern ComputerName accepterar flera värden och jokertecken, så att du kan hämta tjänsterna på flera datorer med ett enda kommando. Följande kommando hämtar till exempel tjänsterna på fjärrdatorn Server01.

Get-Service -ComputerName Server01

Hämta nödvändiga och beroende tjänster

Den Get-Service cmdleten har två parametrar som är mycket användbara vid tjänstadministration. Parametern DependentServices hämtar tjänster som är beroende av tjänsten. Parametern RequiredServices hämtar tjänster som den här tjänsten är beroende av.

De här parametrarna visar bara värdena för egenskaperna DependentServices och ServicesDependedOn (alias =RequiredServices) för objektet System.ServiceProcess.ServiceController som Get-Service returnerar, men de förenklar kommandona och gör det mycket enklare att hämta den här informationen.

Följande kommando hämtar de tjänster som lanmanWorkstation-tjänsten kräver.

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

Följande kommando hämtar de tjänster som kräver Tjänsten 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...

Du kan även hämta alla tjänster som har beroenden. Följande kommando gör just detta och använder sedan cmdleten Format-Table för att visa egenskaperna Status, Namn, RequiredServices och DependentServices för tjänsterna på datorn.

Get-Service -Name * | Where-Object {$_.RequiredServices -or $_.DependentServices} |
  Format-Table -Property Status, Name, RequiredServices, DependentServices -auto

Stoppa, starta, pausa och starta om tjänster

Tjänst-cmdletarna har samma allmänna form. Tjänster kan anges med eget namn eller visningsnamn och ta listor och jokertecken som värden. Om du vill stoppa utskriftshanteraren använder du:

Stop-Service -Name spooler

Om du vill starta utskriftshanteraren när den har stoppats använder du:

Start-Service -Name spooler

Om du vill pausa utskriftshanteraren använder du:

Suspend-Service -Name spooler

Cmdleten fungerar på samma sätt som de andra Restart-Service service-cmdletarna, men vi kommer att visa några mer komplexa exempel för den. I den enklaste användningen anger du namnet på tjänsten:

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>

Du ser att du får ett upprepat varningsmeddelande om att utskriftshanteraren startas. När du utför en tjänståtgärd som tar lite tid Windows PowerShell du att den fortfarande försöker utföra uppgiften.

Om du vill starta om flera tjänster kan du hämta en lista över tjänster, filtrera dem och sedan utföra omstarten:

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 : Cannot 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...

Dessa tjänst-cmdlets har ingen parameter för ComputerName, men du kan köra dem på en fjärrdator med hjälp Invoke-Command cmdleten . Följande kommando startar till exempel om Spooler-tjänsten på fjärrdatorn Server01.

Invoke-Command -ComputerName Server01 {Restart-Service Spooler}

Ange tjänstegenskaper

Set-ServiceCmdleten ändrar egenskaperna för en tjänst på en lokal dator eller en fjärrdator. Eftersom tjänststatusen är en egenskap kan du använda den här cmdleten för att starta, stoppa och pausa en tjänst. Cmdleten Set-Service har också en StartupType-parameter som gör att du kan ändra tjänstens starttyp.

Om du vill Windows Vista och senare versioner Windows öppnar du Windows PowerShell med alternativet Set-Service "Kör som administratör".

Mer information finns i Set-Service

Se även