Du kan hantera Windows-tjänster inte bara från snapin-modulen services.msc eller kommandoradsverktyget sc.exe, utan även med PowerShell. I den här artikeln tar vi upp olika scenarier för hantering av Windows-tjänster med PowerShell.
PowerShell-cmdlets som används för att hantera Windows-tjänster
Det finns åtta grundläggande Service-cmdlets för att visa tillståndet för Windows-tjänster och hantera dem. Kör det här kommandot för att få en fullständig lista över cmdlets för tjänstehantering:
Get-Help \*-Service
- Get-Service – gör det möjligt att få fram tjänsterna på en lokal eller fjärrdator, både i kört och stoppat tillstånd;
- New-Service – skapar en tjänst. Cmdletten skapar en ny post för en Windows-tjänst i registret och i tjänstedatabasen;
- Restart-Service – startar om en tjänst. Cmdletten skickar omstartsmeddelandet via Windows Service Controller;
- Resume-Service – återupptar en tjänst. Cmdletten skickar ett återupptagningsmeddelande till Windows Service Manager;
- Set-Service – ändrar inställningarna för en lokal eller fjärrtjänst, inklusive dess tillstånd, beskrivning, namn som visas eller startläge. Du kan också använda den här cmdletten för att starta, stoppa eller avbryta en tjänst;
- Starta-tjänst – startar en tjänst;
- Stoppa-tjänst – stoppar en tjänst (cmdletten skickar ett stoppmeddelande till Windows Service Manager);
- Avbryt-tjänst – avbryter en tjänst. En avbruten tjänst körs fortfarande, men den gör ingenting förrän den återupptas med (till exempel med cmdlet Resume-Service).
Du kan få en detaljerad beskrivning och exempel på hur du använder en viss cmdlet med Get-Help:
Get-Help Start-Service
Hur kontrollerar du statusen för Windows-tjänster med Get-Service?
Du kan få en lista över tjänster och deras status (körd/stoppad) på en lokal eller fjärrdator med hjälp av cmdlet Get-Service. Med parametern -Name kan du välja tjänster efter namn. Tjänstens namn kan anges med hjälp av jokertecknet *
.
Om du inte vet det exakta tjänstens namn kan du hitta den med hjälp av det visade namnet med hjälp av parametern -DisplayName. Du kan använda listan med värden och jokertecken.
Använd cmdlet Get-Service med parametern -ComputerName för att hämta tjänstens status på en fjärrdator. Du kan fråga efter tjänstestatusen på flera fjärrdatorer samtidigt genom att ange deras namn separerade med kommatecken. Kommandot nedan hämtar till exempel statusen för tjänsten Spooler på fjärrdatorerna ny-prnt1 och ny-prnt2.
Get-Service spooler –ComputerName ny-prnt1,ny-prnt2
Status Name DisplayName------ ---- -----------Running spooler Print SpoolerStopped spooler Print Spooler
Om du vill visa alla egenskaper för en tjänst använder du cmdlet Select-Object:
Get-Service spooler | Select-Object *
Med cmdlet Select-Object kan du hämta specifika egenskaper för en tjänst. Du vill till exempel visa namn, status och tillgängliga alternativ för tjänsten Spooler:
Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*
Cmdletten Get-Service har två parametrar som gör att du kan visa tjänstens beroenden:
- -DependentServices gör det möjligt att visa de tjänster som är beroende av den givna tjänsten
- -RequiredServices visar de tjänster som den givna tjänsten är beroende av
Med följande kommando visas de tjänster som krävs för att starta Spooler-tjänsten:
Get-Service –Name Spooler -RequiredServices
Följande kommando visar de tjänster som är beroende av Spooler:
Get-Service –Name Spooler -DependentServices