MC, 19:01 poniedziałek, 17.06.2013 r.
Ilustracja do artykułu: Windows & TaskKill - Zabijanie procesów z pozycji wiersza poleceń

Windows & TaskKill - Zabijanie procesów z pozycji wiersza poleceń

Kilka słów na temat tego jak na systemach Windows zabić proces z poziomu wiersza poleceń, czyli konsoli.

Jak zabić proces z konsoli na Windowsie?

Przyzwyczajenia z Linuksa dają o sobie znać, choć zapewne i dla wielu osób na co dzień pracujących wyłącznie na Windowsach, temat zabijania procesów z pozycji wiersza poleceń wydaje się interesujący. Można oczywiście zrobić to używając Menedżera zadań, ale oferta podejścia tekstowego jest zdecydowanie bogatsza. Czym więc zastąpić polecenia takie jak kill, czy killall znane z Linuksów?

Otóż na Windowsach do zabijania procesów służy program TaskKill. Jak można podejrzeć w pomocy tej aplikacji, istnieje wiele wariantów przekazywanych argumentów. Do tych zdecydowanie najpopularniejszych możemy zaliczyć:

Zabicie procesu o danym numerze PID (Process ID):

taskkill /PID 1234
Wymuszone zabicie procesu (dołączamy flagę /F):
taskkill /F /PID 1234
Zabicie procesu po jego nazwie:
taskkill /IM nazwa.exe

Jak widać sprawa rozbija się głównie o znajomość tej komendy, bo reszta już bez większej filozofii. No... trzeba oczywiście wiedzieć jeszcze jakich flag użyć. Do zadań bardziej złożonych, polecam zapoznanie się z manualem (flaga /?), w którym wszystko jest wyjaśnione, łącznie z przedstawieniem przykładów. Dla zainteresowanych, wklejam go również poniżej:

>taskkill /?

TASKKILL [/S system [/U nazwa_użytkownika [/P [hasło]]]]
         { [/FI filtr] [/PID id procesu | /IM nazwa obrazu] } [/F] [/T]

Opis:
    To narzędzie wiersza polecenia może służyć do zakończenia jednego lub
    więcej procesów.
    Procesy można kasować przy użyciu identyfikatora procesu lub nazwy obrazu.

Lista parametrów:
    /S    system               Określa system zdalny, z którym ma nastąpić
                               połączenie.

    /U    [domena]użytkownik  Określa kontekst użytkownika, w którym
                               polecenie powinno być wykonane.

    /P    [hasło]              Określa hasło dla danego kontekstu użytkownika.
                               W razie pominięcia monituje o podanie danych.

    /F                         Określa wymuszenie zakończenia
                               procesów.

    /FI   filtr                Wyświetla zestaw zadań pasujących do
                               danych kryteriów określonych w filtrze.

    /PID  id procesu           Określa identyfikator PID procesu, który
                               ma być zakończony.

    /IM   nazwa obrazu         Określa nazwę obrazu procesu, który ma być
                               zakończony. Symbolu wieloznacznego '*' można
                               użyć do określenia wszystkich nazw obrazów.

    /T                         Przerwanie drzewa; kończy określony proces
                               i wszystkich procesów podrzędnych, które zostały
                               uruchomione przez dany proces.

    /?                         Wyświetla tę pomoc/sposób użycia.

Filtry:
    Nazwa filtru   Prawidłowe operatory      Prawidłowe wartości
    ------------   --------------------      -------------------
    STATUS         eq, ne                    RUNNING | NOT RESPONDING
    IMAGENAME      eq, ne                    Nazwa obrazu.
    PID            eq, ne, gt, lt, ge, le    Wartość identyfikatora PID.
    SESSION        eq, ne, gt, lt, ge, le    Numer sesji.
    CPUTIME        eq, ne, gt, lt, ge, le    Czas procesora w formacie
                                             hh:mm:ss.
                                             hh - godziny,
                                             mm - minuty, ss - sekundy
    MEMUSAGE       eq, ne, gt, lt, ge, le    Użycie pamięci w KB
    USERNAME       eq, ne                    Nazwa użytkownika w formacie
                                             [domena]użytkownik
    MODULES        eq, ne                    Nazwa biblioteki DLL
    SERVICES       eq, ne                    Nazwa usługi
    WINDOWTITLE    eq, ne                    Tytuł okna

UWAGA: Symbol wieloznaczny "*" dla przełącznika /IM jest akceptowany tylko
       razem z filtrami.

UWAGA: Zakończenie procesów zdalnych będzie zawsze przeprowadzane przez
              wymuszenie niezależnie od tego, czy określono opcję /F, czy nie.

Przykłady:
    TASKKILL /S system /F /IM notepad.exe /T
    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
    TASKKILL /F /IM notepad.exe /IM mspaint.exe
    TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
    TASKKILL /F /FI "USERNAME eq NT AUTHORITYSYSTEM" /IM notepad.exe
    TASKKILL /S system /U domenanazwa_użytkownika /FI "USERNAME ne NT*" /IM *
    TASKKILL /S system /U nazwa_użytkownika /P hasło /FI "IMAGENAME eq note*"

Komentarze (1)

Imię:
Treść:
Alesks 2022-05-29 22:17:03
jak zabić wiele procesów na raz?