Get-Service

Pobiera listę usług systemu Windows i ich status.

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] ] [-DisplayName ]

  • -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 prostu Get-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.