Stop-Service to cmdlet PowerShell (moduł Microsoft.PowerShell.Management), którym zatrzymujesz działającą usługę systemu Windows — od SQL Servera, przez Spooler wydruku, po demona jakiegoś programu, który akurat zżera CPU. W praktyce robisz nim to samo co przyciskiem „Zatrzymaj” w services.msc, tylko z terminala, skryptowo i na wielu usługach naraz. Usługę wskazujesz po nazwie systemowej, po nazwie wyświetlanej albo podając jej obiekt. Cmdlet działa wyłącznie na Windowsie — na Linuksie w PowerShellu go nie znajdziesz.
Składnia i najważniejsze opcje
Stop-Service [-Name]
-Name— nazwa systemowa usługi (ta krótka, np.Spooler, nie „Bufor wydruku”). Parametr pozycyjny, więc zwykle piszesz ją od razu. Przyjmuje wiele nazw i symbole wieloznaczne.-DisplayName— pozwala wskazać usługę po nazwie wyświetlanej, tej z kolumny wGet-Service.-InputObject— przekazujesz gotowy obiekt usługi (np. zGet-Service), zamiast podawać nazwę tekstem.-Force— wymagany, gdy usługa ma usługi zależne. Bez niego PowerShell odmówi zatrzymania, żeby nie ubić czegoś, co od niej zależy.-NoWait— nie czeka, aż usługa faktycznie przejdzie w stan zatrzymany; wysyła żądanie i wraca.-PassThru— zwraca obiektServiceController, żebyś od razu widział, w jakim stanie skończyła usługa.-Exclude— wyklucza wskazane usługi z operacji (przydatne przy symbolach wieloznacznych).-WhatIf— pokazuje, co by się stało, ale niczego nie zatrzymuje. Świetny do testu na produkcji.
Przykłady użycia
Stop-Service -Name Spooler— zatrzymuje bufor wydruku (klasyk, gdy kolejka drukarki się zawiesi).Stop-Service -DisplayName "Windows Update"— zatrzymuje usługę po nazwie wyświetlanej, gdy nie pamiętasz nazwy systemowej.Stop-Service -Name MSSQLSERVER -Force— ubija SQL Server razem z usługami od niego zależnymi.Get-Service W3SVC | Stop-Service -PassThru— pobiera usługę, zatrzymuje i od razu wypisuje jej stan końcowy.Stop-Service -Name "app*" -Exclude "appmgmt" -WhatIf— na sucho sprawdza, które usługi na „app” by padły, pomijającappmgmt.
Częste błędy i pułapki
Najczęstsza wpadka to mylenie -Name z -DisplayName. „Bufor wydruku” to nazwa wyświetlana, a systemowa to Spooler — pod -Name wchodzi tylko ta druga. Druga pułapka: usługa z zależnościami bez -Force rzuci błędem i nic nie zrobi, zamiast pytać. Pamiętaj też, że -Force nie omija uprawnień — bez konsoli podniesionej do administratora dostaniesz „access denied”. Uważaj z symbolami wieloznacznymi typu "*": łatwo zatrzymać pół systemu jednym poleceniem, dlatego wcześniej przepuść to przez -WhatIf. I nie licz na -NoWait, gdy zaraz potem chcesz coś zrobić na zatrzymanej usłudze — ona może jeszcze się wygaszać.
Powiązane komendy: Start-Service, Restart-Service, Suspend-Service, Resume-Service, Get-Service, Set-Service.