Stop-Process to cmdlet PowerShella, który kończy działające procesy w systemie Windows — po nazwie albo po numerze PID. To odpowiednik graficznego „Zakończ zadanie” z Menedżera zadań, tylko że działa z konsoli, da się go użyć w skryptach i pozwala ubić kilka procesów naraz jednym poleceniem. Przydaje się, gdy jakaś aplikacja zawiesiła się, zżera procesor albo trzyma zablokowany plik, a klikanie w GUI to za mało.
Składnia i najważniejsze opcje
Podstawowa forma to Stop-Process [-Name . Wybierasz proces albo po nazwie, albo po ID — nie mieszasz obu w jednym wywołaniu.
-Name— wskazuje proces po nazwie (np.notepad), bez rozszerzenia.exe. Możesz podać kilka nazw po przecinku.-Id— wskazuje proces po numerze PID. Najprecyzyjniejsza metoda, gdy działa wiele instancji tej samej aplikacji.-Force— wymusza zakończenie bez pytania o potwierdzenie. PowerShell pyta domyślnie tylko przy procesach, których zwykle nie zamyka się bez zgody właściciela.-InputObject— przyjmuje obiekty procesów przekazane zGet-Processprzez potok.-PassThru— zwraca obiekt zatrzymanego procesu. Bez tegoStop-Processnic nie wypisuje po wykonaniu.-WhatIf— pokazuje, co polecenie zrobiłoby, ale niczego nie kończy. Idealne do testu przed strzałem.-Confirm— wymusza pytanie o potwierdzenie przed ubiciem każdego procesu.
Przykłady użycia
Stop-Process -Name notepad— zamyka wszystkie otwarte instancje Notatnika.Stop-Process -Id 4280 -Force— ubija proces o PID 4280 bez pytania o potwierdzenie.Get-Process chrome | Stop-Process -Force— pobiera wszystkie procesy Chrome i kończy je jednym ruchem przez potok.Stop-Process -Name firefox -WhatIf— pokazuje, że Firefox zostałby zamknięty, ale go nie rusza (test).Get-Process | Where-Object { $_.CPU -gt 500 } | Stop-Process -PassThru— kończy procesy zjadające ponad 500 sekund CPU i wypisuje, co ubił.
Częste błędy i pułapki
Największa pułapka: Stop-Process kończy proces natychmiast, jak kill -9 w Linuksie — bez zapisu, bez „czy na pewno wyjść?”. Zamkniesz edytor z niezapisanym plikiem i dane przepadają. Do „grzecznego” zamknięcia z zapisem lepszy bywa Stop-Process tylko w ostateczności, gdy okna nie da się zamknąć normalnie.
Druga sprawa: nie podawaj rozszerzenia. -Name notepad.exe zwróci błąd „nie znaleziono procesu” — poprawnie jest -Name notepad. Uważaj też na uprawnienia: procesy systemowe albo cudzych użytkowników wymagają konsoli uruchomionej jako administrator, inaczej dostaniesz Access denied. I nie myl tego z Stop-Service — usługi zatrzymuje się osobnym cmdletem, bo mają własny cykl życia i zależności.
Uwaga na potok: Get-Process svchost | Stop-Process potrafi ubić kluczowy proces systemowy i wywołać restart Windowsa. Filtruj precyzyjnie i testuj z -WhatIf.
Powiązane komendy: Get-Process (podgląd działających procesów), Start-Process (uruchamianie), Wait-Process (czekanie na zakończenie), Stop-Service (zatrzymywanie usług), taskkill (klasyczny odpowiednik z cmd.exe).