Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

PowerShell – Get-Service

Termin Definicja
PowerShell – Get-Service

Get-Service sprawdza stan usług Windows, w tym silnika i agenta SQL Server.

Podstawowe zastosowanie polecenia

Get-Service to jedno z pierwszych poleceń, po które sięga administrator, gdy trzeba szybko odpowiedzieć na pytanie, czy dana usługa Windows w ogóle działa. Uruchomione bez parametrów wypisuje wszystkie zarejestrowane usługi wraz z kolumnami Status, Name i DisplayName. W praktyce częściej filtruje się od razu, na przykład Get-Service -Name MSSQLSERVER dla domyślnej instancji silnika bazy danych albo Get-Service -Name SQLSERVERAGENT dla agenta odpowiedzialnego za zadania cykliczne. Instancje nazwane mają inny wzorzec: usługa silnika to MSSQL$NAZWAINSTANCJI, a agenta SQLAgent$NAZWAINSTANCJI, więc wygodnym skrótem jest Get-Service -Name *SQL* pokazujące od razu cały zestaw. Wynik jest obiektem, a nie tekstem, dlatego można go bezpośrednio przekazać dalej, na przykład Get-Service *SQL* | Where-Object Status -eq Stopped, żeby zobaczyć wyłącznie to, co jest wyłączone.

Czego to polecenie nie pokaże

Get-Service celowo ogranicza się do stanu i nazwy. Nie zwraca konta, na którym usługa się uruchamia, ścieżki do pliku wykonywalnego ani identyfikatora procesu, a to bywa najważniejsze przy diagnozowaniu problemów z uprawnieniami. Te dane daje dopiero Get-CimInstance -ClassName Win32_Service, gdzie dostępne są właściwości StartName, PathName i ProcessId. Istotna różnica dotyczy też pracy zdalnej: parametr -ComputerName działa w Windows PowerShell 5.1 wbudowanym w system, natomiast w PowerShell 7 został z tego polecenia usunięty i zdalne sprawdzenie trzeba wykonać przez Invoke-Command albo przez sesję CIM. Do zmiany stanu służą osobne polecenia: Start-Service, Stop-Service i Restart-Service, a do trybu uruchamiania Set-Service z parametrem -StartupType. Klasycznym odpowiednikiem tekstowym pozostaje sc query oraz konsola services.msc, ale żadne z nich nie zwraca obiektów, więc do skryptów nadają się gorzej.

Typowe problemy w praktyce serwisowej

Najczęstsza sytuacja: usługa SQL Server pokazuje status Stopped i nie chce wstać, a Start-Service kończy się komunikatem o odmowie dostępu. Powodów bywa kilka, od braku uprawnień administracyjnych w bieżącej sesji konsoli, przez zmienione hasło konta usługi po zmianie polityki domenowej, po zajęty port albo uszkodzone pliki bazy master. Sam PowerShell powie tylko, że usługa nie wstała; przyczyna zwykle czeka w dzienniku zdarzeń aplikacji i w pliku ERRORLOG katalogu LOG instancji. Drugi częsty przypadek to usługa w stanie StartPending albo StopPending utrzymującym się długimi minutami, co zazwyczaj oznacza, że proces czeka na operację dyskową lub na zamknięcie połączeń. Trzeci to mylenie usług: zatrzymanie agenta nie zatrzymuje silnika, ale zatrzymanie silnika zatrzymuje agenta zależnego od niego. Warto też pamiętać, że nazwa wyświetlana bywa zlokalizowana, więc filtrowanie po -DisplayName na polskiej wersji systemu może nie znaleźć tego, co znajduje filtr po -Name.

Kiedy skrypt to za mało

Usługa, która przestaje wstawać po restarcie serwera, rzadko jest problemem jednego polecenia. Za takim objawem stoi zwykle awaria dysku, przepełniony wolumin z plikami dziennika transakcji albo niepoprawnie zakończona aktualizacja. Wdrażamy i serwisujemy oprogramowanie handlowe oparte na bazach SQL Server, obsługujemy firmy z Warszawy przez całą dobę we wszystkie dni tygodnia, a na czas naprawy stacji roboczej udostępniamy laptop zastępczy, żeby praca w biurze nie stanęła.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę