- Завершение процесса из командной строки
- Завершение процесса по его имени
- Завершение процесса по его PID
- Расширенные условия фильтрации процессов
- Работа с другим компьютером
- Завершить процесс из командной строки
- Как удалить процесс в Windows? Утилита TaskKill в cmd.
- Как удалить процесс Windows без Диспетчера?
- Process. Close Main Window Метод
- Определение
- Возвращаемое значение
- Исключения
- Примеры
- Комментарии
Завершение процесса из командной строки
Как должно быть Вам известно, процесс можно запросто завершить, выбрав соответствующий пункт в диспетчере задач. Однако, так же есть возможность завершения нужного процесса через командную строку, с помощью программы taskkill, которая идет по умолчанию с любой операционной системой Windows. Рассмотрим различные примеры применения этой программы.
Завершение процесса по его имени
Данный вариант идеально подходит для ситуаций, когда нужно завершить процесс или группу процессов с одинаковым именем. Делается это следующей командой:
где _ИМЯ_ПРОЦЕССА_ — это имя процесса, например calc.exe. То есть, для завершения процесса программы «Калькулятор», нужно выполнить следующую команду:
Завершение процесса по его PID
Еще процесс можно завершить по его идентификатору в системе — удобно, в том случае, если Вам нужно завершить какой-то определенный процесс, имя которого, к примеру, совпадает с именами других процессов. Получить PID можно выполнив команду tasklist :
Найдя нужный процесс и его PID, можно перейти к его завершению. Делается это так:
где вместо _PID_ должен быть настоящий PID процесса.
Расширенные условия фильтрации процессов
Помимо флагов /IM и /PID, которые отвечают за отбор процессов по имени и PID, соответственно, программа taskkill поддерживает множество других параметров, которые становятся доступны при использовании флага /FI:
- CPUTIME — время CPU
- IMAGENAME — имя образа
- MEMUSAGE — использование памяти в Кбайтах
- MODULES — имя DLL
- PID — значение
- SERVICES — имя службы
- SESSION — номер сессии
- STATUS — статус
- USERNAME — имя пользователя
- WINDOWTITLE — заголовок окна
Так же программа умеет работать со следующими операторами сравнения:
- * — любые символы
- eq — равно
- ge — больше или равно
- gt — больше чем
- le — меньше или равно
- lt — меньше чем
- ne — не равно
Разберем на примерах. Например, нужно закрыть процесс iexplore (наименование процесса браузера Internet Explorer) у пользователя Ivan:
Завершим все процессы пользователя Ivan:
Работа с другим компьютером
Программа taskkill так же умеет работать с другим компьютером — для этого используются три следующих флага:
- /S — имя или адрес удаленного компьютера
- /U — имя пользователя
- /P — пароль пользователя
К примеру, если нужно на компьютере с адресом 192.168.100.1 «убить» процесс notepad.exe, то нужно выполнить следующую команду:
Где, как должно быть понятно 192.168.100.1 — адрес компьютера, user — имя пользователя, 12345678 — пароль.
Если эти действия нужно сделать с компьютером, который находится в одном домене с Вашим текущим пользователем, и он обладает правами администратора (например, он администратор домена), то можно выполнить выше указанную команду без указания конкретного пользователя:
Завершить процесс из командной строки
Вы наверняка знакомы с традиционным способом завершить процесс в Windows с помощью диспетчера задач. Этот способ эффективен, но способ с использованием командной строки дает больше контроля и возможность завершить несколько процессов за раз.
Возможность завершить процесс из командной строки дает нам команда TaskKill. Вы можете убить процесс из командной строки по его идентификатору (PID) или по имени образа (имени exe файла). Запустите консоль от имени администратора и введите команду tasklist, чтобы просмотреть все запущенные процессы.
В приведенном выше примере можно увидеть имя образа и PID для каждого процесса. Если вы хотите убить процесс Notepad? то нужно ввести:
Флаг /F – нужен для принудительного завершения процесса. Если его не использовать, то в некоторых случаях ничего не произойдет, приложение продолжит свою работу. Как пример попытка завершения процесса explorer.exe без этого флага ни к чему не приведет.
Если у вас есть несколько экземпляров приложений, как например chrome, то выполнение команды taskkill /IM. chrome.exe завершит их все. При указании PID можно завершить только конкретные процессы Chrome.
В taskkill есть варианты фильтрации, которые позволяют использовать следующие переменные и операторы:
- STATUS (статус)
- IMAGENAME (имя образа)
- PID (значение)
- SESSION (номер сессии)
- CPUTIME (время CPU)
- MEMUSAGE (использование памяти в кб)
- USERNAME (имя пользователя)
- MODULES (имя DLL)
- SERVICES (имя службы)
- WINDOWTITLE (заголовок окна)
- eq (равно)
- ne (не равно)
- gt (больше чем)
- lt (меньше чем)
- ge (больше или равно)
- le (меньше или равно)
- * (любые символы)
Вы можете использовать переменные и операторы с флагом /FI.
Например, допустим вы хотите, завершить все процессы, у которых заголовок окна начинается с “Интернет”, то команда будет следующей:
taskkill /FI “WINDOWTITLE eq Internet*” /F
Чтобы завершить все процессы запущенные от имени Marina:
taskkill /FI “USERNAME eq Marina” /F
Таким же образом можно завершить процесс запущенный на другом компьютере из командной строки. Например имя компьютера OperatorPC, необходимо ввести:
taskkill /S OperatorPC /U Имя_пользователя_на_удаленной_машине /P Пароль_от_удаленной_машины /IM notepad.exe /F
Подробную информацию вы всегда можете получить запустив taskkill с ключом /?
Как удалить процесс в Windows? Утилита TaskKill в cmd.
В статье описываются способы как удалить процесс в текущем сеансе Windows, возможность работы с несколькими процессами сразу…
С Диспетчером задач Windows знаком каждый пользователь. Характерно, что один из способов вызова Диспетчера через знаменитое сочетание клавиш Ctrl + Alt + Del вообще являлось недокументированной возможностью Windows и не встречается более ни в одной из операционных систем, являясь неким “запатентованным” товарным знаком. Но это лирика.
Однако в предыдущих версиях от Майкрософт, не отличавшихся стабильностью Диспетчер являлся палочкой выручалочкой, который часто использовался с целью – закрыть зависшее приложение. Со временем к Диспетчеру стали обращаться за этой целью всё реже, однако сама проблема не пропала.
Как удалить процесс Windows без Диспетчера?
Для того, чтобы удалить процесс, с которым не справляется система, существует хороший аналог без графического интерфейса. Это одна из ремонтных утилит в составе Windows под названием TaskKill. Для её запуска нам понадобится обработчик команд cmd с правами администратора.
Любой из процессов можно остановить, используя его имя из списка, отображаемых в Диспетчере с помощью этой утилитки. К слову, справка по TaskKill, вызываемая
полностью русифицирована. Можете взглянуть. А мы приступим.
Удалить процесс какой-то конкретно можно командой
taskkill /IM имя_процесса
Например, если мы хотим удалить процесс Internet Explorer:
нажмите, чтобы увеличить
Однако при работе с браузерами и закрытии окна любого из них с множеством открытых вкладок, утилита либо запросит дополнительное разрешение пользователя через интерфейс самого браузера (если он завис, это бесполезное занятие) либо предупредит о принудительном закрытии программы:
Так что можно запомнить команду принудительного (аварийного) закрытия процесса. С помощью этой команды можно остановить зависший проводник Windows:
Привычный интерфейс пропадёт:
и тут же ввести его снова в работу:
Кто заметил – именно добавления флага /F и удаляет дополнительную информацию из окна консоли.
Так каждому процессу присвоен свой идентификатор (в каждой сессии Windows) он свой, удалить процесс можно не по имени, а по номеру. Представим, что Диспетчер заблокирован админом или вирусом. Найти PID процесса поможет та же консоль. Откройте второе окно и наберите команду:
Всё на виду. Но теперь команда в терминале Windows принимает вид:
taskkill /PID номер_PID
Хитрости утилиты TaskKill
- С помощью этой команды можно удалить процесс, не зная его в лицо. Флаг /FI позволяет убить процесс, пожирающий большое количество памяти. Например, записав в консоли:
taskkill /FI “memusage gt ХХХХ”
Вы остановите все процессы и приложения, которые потребляют более ХХХХ килобайт оперативной памяти. Смотрите:
Кстати, если наберёте команду, указав на принудительное закрытие /F и небольшой объём памяти, скажем, 9000, это приведёт к выключению Windows.
- сама консоль при мне, если честно, никогда не зависала, но утилите TaskKill подвластно и это:
- также одним из самых применяемых флагов команды
Например, если у вас завис документ Word, примените команды в таком виде: вам удасться удалить процесс, запущенный во всех текущих сессиях сеанса. Эта команда применяется на тот, случай, если выхотите, чтобы следы процесса исчезли из системы полностью:
Process. Close Main Window Метод
Определение
Закрывает процесс, имеющий пользовательский интерфейс, посылая сообщение о закрытии главному окну процесса. Closes a process that has a user interface by sending a close message to its main window.
Возвращаемое значение
Значение true , если сообщение о закрытии было успешно отправлено; false , если связанный процесс не имеет главного окна или если главное окно отключено (например, если отображается модальное диалоговое окно). true if the close message was successfully sent; false if the associated process does not have a main window or if the main window is disabled (for example if a modal dialog is being shown).
Исключения
Этот процесс уже завершился. The process has already exited.
-или- -or- Нет процессов, связанных с этим объектом Process. No process is associated with this Process object.
Примеры
В следующем примере запускается экземпляр блокнота. The following example starts an instance of Notepad. Затем он получает сведения об использовании физической памяти для связанного процесса с интервалом в 2 секунды в течение не более 10 секунд. It then retrieves the physical memory usage of the associated process at 2 second intervals for a maximum of 10 seconds. Пример определяет, завершается ли процесс до 10 секунд. The example detects whether the process exits before 10 seconds have elapsed. В этом примере процесс закрывается, если он по-прежнему выполняется через 10 секунд. The example closes the process if it is still running after 10 seconds.
Комментарии
При выполнении процесса его цикл обработки сообщений находится в состоянии ожидания. When a process is executing, its message loop is in a wait state. Цикл обработки сообщений выполняется каждый раз, когда операционная система отправляет сообщение Windows в процесс. The message loop executes every time a Windows message is sent to the process by the operating system. Вызов CloseMainWindow отправляет запрос на закрытие главного окна, которое в правильно сформированном приложении закрывает дочерние окна и отменяет все выполняющиеся циклы обработки сообщений для приложения. Calling CloseMainWindow sends a request to close the main window, which, in a well-formed application, closes child windows and revokes all running message loops for the application. Запрос на выход из процесса путем вызова не CloseMainWindow заставляет приложение завершить работу. The request to exit the process by calling CloseMainWindow does not force the application to quit. Приложение может запросить проверку пользователя перед выходом или отказаться от его завершения. The application can ask for user verification before quitting, or it can refuse to quit. Чтобы принудительно завершить работу приложения, используйте Kill метод. To force the application to quit, use the Kill method. Поведение аналогично тому CloseMainWindow , как пользователь закрывает главное окно приложения с помощью системного меню. The behavior of CloseMainWindow is identical to that of a user closing an application’s main window using the system menu. Таким образом, запрос на завершение процесса путем закрытия главного окна не заставляет приложение немедленно завершить работу. Therefore, the request to exit the process by closing the main window does not force the application to quit immediately.
Данные, измененные процессом или ресурсами, выделенными для процесса, могут быть потеряны при вызове Kill . Data edited by the process or resources allocated to the process can be lost if you call Kill. Kill вызывает аварийное завершение процесса и должно использоваться только при необходимости. Kill causes an abnormal process termination, and should be used only when necessary. CloseMainWindow включает упорядоченное завершение процесса и закрывает все окна, поэтому оно является предпочтительным для приложений с интерфейсом. CloseMainWindow enables an orderly termination of the process and closes all windows, so it is preferable for applications with an interface. CloseMainWindowВ случае сбоя можно использовать Kill для завершения процесса. If CloseMainWindow fails, you can use Kill to terminate the process. Kill является единственным способом завершения процессов, не имеющих графических интерфейсов. Kill is the only way to terminate processes that do not have graphical interfaces.
Можно вызывать Kill и CloseMainWindow только для процессов, запущенных на локальном компьютере. You can call Kill and CloseMainWindow only for processes that are running on the local computer. Нельзя вызвать завершение процессов на удаленных компьютерах. You cannot cause processes on remote computers to exit. Можно просматривать только сведения о процессах, запущенных на удаленных компьютерах. You can only view information for processes running on remote computers.