Get-Service to cmdlet PowerShella, który pobiera listę usług systemu Windows i pokazuje ich aktualny status (Running, Stopped itd.). To pierwsza rzecz, po którą sięgasz, gdy chcesz sprawdzić, czy jakaś usługa w ogóle działa, zanim zaczniesz ją restartować albo zgłaszać, że „serwer leży”. Działa lokalnie i — w starszym Windows PowerShellu — także zdalnie, a wynik świetnie nadaje się do filtrowania i przekazywania dalej w potoku do Stop-Service czy Restart-Service.
Składnia i najważniejsze opcje
Podstawowa składnia: Get-Service [[-Name]
-Name— filtruje po nazwie usługi (np.Spooler). To parametr pozycyjny, więc nazwę możesz podać bez wpisywania-Name. Obsługuje znaki wieloznaczne, np.win*.-DisplayName— filtruje po nazwie wyświetlanej, czyli tej czytelnej dla człowieka („Print Spooler”), a nie po krótkiej nazwie technicznej.-DependentServices— pokazuje usługi, które zależą od wskazanej (czyli te, które padną, jak ją zatrzymasz).-RequiredServices— pokazuje usługi, których wskazana usługa potrzebuje do startu.-Include/-Exclude— zawęża lub wyklucza usługi wg wzorca, używane razem z-Name.-ComputerName— odpytuje usługi na zdalnej maszynie. Uwaga: istnieje tylko w Windows PowerShell 5.1, w PowerShell 7+ został usunięty.
Przykłady użycia
Get-Service— wypisuje wszystkie usługi z ich statusem. Klasyczny szybki przegląd.Get-Service -Name Spooler— sprawdza konkretnie kolejkę wydruku. Skrócona forma to po prostuGet-Service Spooler.Get-Service | Where-Object {$_.Status -eq 'Running'}— pokazuje tylko usługi aktualnie działające. Zamień na'Stopped', żeby znaleźć te leżące.Get-Service "win*"— listuje wszystkie usługi, których nazwa zaczyna się od „win”, dzięki znakom wieloznacznym.Get-Service -Name wuauserv | Restart-Service— pobiera usługę Windows Update i od razu przekazuje ją w potoku do restartu.
Częste błędy i pułapki
Najczęstsza wpadka to mylenie -Name z -DisplayName. Krótka nazwa (wuauserv) i nazwa wyświetlana („Windows Update”) to dwie różne rzeczy — filtr po jednym nie zadziała na drugie. Druga pułapka: -ComputerName nie istnieje już w PowerShell 7. Jeśli pracujesz na nowym Core, do zdalnego odpytania użyj Invoke-Command -ComputerName srv01 { Get-Service }. Pamiętaj też, że Get-Service tylko czyta stan — niczego nie zmienia, więc jest całkowicie bezpieczny do diagnozy. Zmiany robią dopiero Start-Service, Stop-Service i Restart-Service, a te zwykle wymagają uruchomienia PowerShella jako administrator.
Powiązane komendy: Start-Service, Stop-Service, Restart-Service, Set-Service, Get-Process oraz starszy odpowiednik z cmd — sc.exe query.