Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här exemplet gäller endast för Windows PowerShell 5.1.
Det finns åtta grundläggande cmdletar för Service, utformade för en mängd olika servicetjänster. Den här artikeln tittar bara på att lista och ändra körstatus för tjänster. Du kan hämta en lista över tjänst-cmdletar med hjälp av Get-Command *-Service. Du hittar information om varje cmdlet med hjälp av Get-Help <Cmdlet-Name>, till exempel Get-Help New-Service.
Hämta tjänster
Du kan hämta tjänsterna på en lokal dator eller fjärrdator med hjälp av cmdleten Get-Service. Precis som med Get-Processreturneras alla tjänster med hjälp av kommandot Get-Service utan parametrar. Du kan filtrera efter namn, även med hjälp av 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 på tjänsten är, kanske du behöver hitta tjänster efter visningsnamn. Du kan söka efter specifikt namn, använda jokertecken eller ange en lista med 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
Hämta fjärrtjänster
Med Windows PowerShell kan du använda parametern ComputerName för cmdleten Get-Service för att hämta tjänsterna 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å server01-fjärrdatorn.
Get-Service -ComputerName Server01
Från och med PowerShell 6.0 har *-Service-cmdletarna inte parametern ComputerName. Du kan fortfarande använda tjänster på fjärrdatorer med PowerShell-fjärrstyrning. Följande kommando hämtar till exempel tjänsterna på server02-fjärrdatorn.
Invoke-Command -ComputerName Server02 -ScriptBlock { Get-Service }
Du kan också hantera tjänster med de andra *-Service cmdlets. Mer information om PowerShell-fjärrkommunikation finns i about_Remote.
Skaffa nödvändiga och beroende tjänster
Cmdleten Get-Service har två parametrar som är mycket användbara för tjänstadministration. Parametern DependentServices hämtar tjänster som är beroende av tjänsten.
Parametern RequiredServices hämtar tjänster som LanmanWorkstation-tjänsten är beroende av.
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
Parametern DependentServices hämtar det som kräver LanmanWorkstation-tjänsten.
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...
Följande kommando hämtar samtliga tjänster som har beroenden. Cmdleten Format-Table för att visa egenskaperna Status, Name, RequiredServicesoch DependentServices för tjänsterna.
Get-Service -Name * | Where-Object {$_.RequiredServices -or $_.DependentServices} |
Format-Table -Property Status, Name, RequiredServices, DependentServices -Auto
Stoppa, starta, pausa och starta om tjänster
Alla service-cmdletar har samma allmänna form. Tjänster kan specificeras med identifieringsnamn eller visningsnamn och kan använda 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 Restart-Service fungerar på samma sätt som de andra service-cmdletarna:
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>
Observera att du får ett upprepat varningsmeddelande om att utskriftshanteraren startar. När du utför en tjänståtgärd som tar lite tid meddelar PowerShell 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 : 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...
Dessa tjänst-cmdletar har ingen ComputerName- parameter, men du kan köra dem på en fjärrdator med hjälp av cmdleten Invoke-Command. Följande kommando startar till exempel om Spooler-tjänsten på server01-fjärrdatorn.
Invoke-Command -ComputerName Server01 {Restart-Service Spooler}
Ange tjänstegenskaper
Cmdleten Set-Service ändrar egenskaperna för en tjänst på en lokal dator eller 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 använda Set-Service i Windows Vista och senare versioner av Windows öppnar du PowerShell med alternativet Kör som administratör.
Mer information finns i Set-Service