Всем известно, как убить процесс в Windows с помощью диспетчера задач.
Однако, когда вы находитесь в среде Terminal Server с 20-тью другими пользователями, и вам нужно убить все соответствующие процессы в Windows из командной строки, это просто невозможно, потому что может быть выполнено 100 процессов.
Но, вы можете использовать tasklist, чтобы перечислить все процессы Windows и taskkill, чтобы убить все соответствующие процессы в Windows из командной строки, похожие на kill или kill -9 в Linux.
Все это возможно с помощью команды TaskKill. Во-первых, давайте рассмотрим основы.
Вы можете убить процесс по идентификатору процесса (PID) или по имени образа (имя файла EXE).
Откройте командную строку административного уровня и запустите tasklist, чтобы просмотреть все запущенные процессы:
C:\WINDOWS\system32>tasklist Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ System Idle Process 0 Services 0 8 K System 4 Services 0 9,720 K Registry 120 Services 0 9,668 K smss.exe 444 Services 0 484 K csrss.exe 628 Services 0 2,004 K wininit.exe 732 Services 0 3,256 K services.exe 804 Services 0 7,584 K lsass.exe 824 Services 0 12,408 K svchost.exe 996 Services 0 344 K svchost.exe 96 Services 0 19,960 K fontdrvhost.exe 364 Services 0 768 K svchost.exe 928 Services 0 10,700 K svchost.exe 1040 Services 0 5,244 K svchost.exe 1296 Services 0 2,300 K svchost.exe 1304 Services 0 5,376 K
В приведенном выше примере вы можете увидеть имя образа и PID для каждого процесса.
Если вы хотите убить процесс запуска firefox:
C:\>Taskkill /IM firefox.exe /F
или
C:\>Taskkill /PID 26356 /F
Флаг / F убивает процесс принудительно.
Несоблюдение флага / F приведет к тому, что в некоторых случаях ничего не происходит.
Один из примеров – когда я хочу убить процесс explorer.exe, я должен использовать флаг / F, иначе процесс просто не завершится.
Если у вас есть несколько экземпляров открытого образа exe, например несколько процессов firefox.exe, запуск команды taskkill / IM firefox.exe приведет к уничтожению всех экземпляров.
Когда вы укажете PID, только конкретный экземпляр firefox будет прерван.
Реальная мощность taskkill – это параметры фильтрации, которые позволяют использовать следующие переменные и операторы.
Переменные:
STATUS IMAGENAME PID SESSION CPUTIME MEMUSAGE USERNAME MODULES SERVICES WINDOWTITLE
Операторы:
eq (equals) ne (not equal) gt (greater than) lt (less than) ge (greater than or equal) le (less than or equal) "*" is the wildcard.
Вы можете использовать переменные и операторы с флагом фильтрации / FI.
Например, предположим, что вы хотите завершить все процессы, у которых есть заголовок окна, начинающийся с «Internet»:
C:\>taskkill /FI "WINDOWTITLE eq Internet*" /F
Как насчет убийства всех процессов, запущенных под учетной записью Steve:
C:\>taskkill /FI “USERNAME eq Steve” /F
C:\>taskkill /S SteveDesktop /U RemoteAccountName /P RemoteAccountPassword /IM notepad.exe /F
Чтобы узнать больше о taskkill, запустите его с помощью флага /? как и любую другую команду Windows.
Также можно убить процесс, выполняющийся на удаленном компьютере с taskkill.
Просто запустите следующую команду, чтобы убить notepad.exe на удаленном компьютере под названием SteveDesktop:
См. также
10 команд Windows, которые необходимо знать для устранения неполадок