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