Stop-Process

Zatrzymuje (kończy) działający proces po nazwie lub ID.

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 ] [-Id ] [-Force]. 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 z Get-Process przez potok.
  • -PassThru — zwraca obiekt zatrzymanego procesu. Bez tego Stop-Process nic 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).