Не справляется с этой задачей.
Иногда возникает необходимость вручную завершить процесс, который не отвечает. В большинстве случаев это можно сделать с помощью Диспетчера задач Windows, однако порой ему не удается справиться с вышедшим из под контроля приложением. Мне часто приходилось сталкиваться с этим при попытке завершить процесс Acronis. В такой ситуации я обычно использую более мощный инструмент - команду taskkill.
Чтобы воспользоваться taskkill, нужно открыть окно командной строки. Для этого вызовите окно «Выполнить» (Run) из меню «Пуск» (Start) или воспользуйтесь клавишной комбинацией +[R] и введите «cmd» (без кавычек) в поле «Открыть» (Open, рис. A).
Рисунок A. Откройте окно командной строки.
Использование команды taskkill
Общий синтаксис команды выглядит следующим образом:
Taskkill [ОПЦИИ] [ИДЕНТИФИКАТОР ПРОЦЕССА]
Разумеется, для taskkill доступен широкий выбор опций. Перечислю лишь наиболее полезные из них:
/s КОМПЬЮТЕР, где КОМПЬЮТЕР - это IP или адрес удаленного компьютера. По умолчанию, операция выполняется в локальной системе. Если именно это вас и интересует, данную опцию можно не использовать.
/u ДОМЕН\ПОЛЬЗОВАТЕЛЬ , где ДОМЕН - это имя домена, а ПОЛЬЗОВАТЕЛЬ - имя пользователя, для которого нужно выполнить команду. Данная опция позволяет запускать taskkill с правами определенной учетной записи или домена.
/p - обязательно используется в сочетании с опцией /u для указания пароля к учетной записи пользователя.
/fi - позволяет выполнять команду taskkill с определенными фильтрами.
/f - принудительно завершает выполнение команды.
/IM - позволяет использовать имя приложения вместо идентификатора процесса.
Ну и разумеется, одна из самых полезных опций - переключатель для вызова справки (рис. В):
Taskkill /?
Завершение процесса по имени приложения
Проще всего завершить вышедший из-под контроля процесс, воспользовавшись командой taskkill с использованием опции /IM. Выглядеть это будет так:
Taskkill /IM ИМЯ_ПРИЛОЖЕНИЯ
Здесь ИМЯ_ПРИЛОЖЕНИЯ - это имя процесса, который требуется завершить. К примеру, если Outlook не удается закрыть, можно воспользоваться следующей командой:
Taskkill /IM outlook.exe
Завершение процесса по идентификатора
Если вы не знаете имени процесса, но знаете его идентификатор (PID) - например, 572 - можно воспользоваться следующей командой:
Taskkill /PID 572
Завершение всех процессов для определенной учетной записи
Существует также возможность завершить все процессы для определенной учетной записи. Это особенно актуально, если совершенно точно известно, что проблема связана с определенной учетной записью, или если пользователь уже вышел из системы, а запущенные им процессы перестали отвечать. В таком случае можно воспользоваться следующей командой:
Taskkill /F /FI “USERNAME eq имя_пользователя”
Здесь имя_пользователя - это имя учетной записи, под которой запущены нежелательные процессы. Обязательно нужно включить в команду опцию USERNAME, чтобы указать соответствующее имя пользователя.
Завершение процессов на удаленном компьютере
Еще одна удобная возможность - завершение процессов в удаленном режиме. Допустим, вы точно знаете, что система не отвечает из-за определенного процесса (возьмем для примера все тот же Outlook). В таком случае можно воспользоваться другим компьютером и выполнить следующую команду:
Taskkill /s IP-АДРЕС /u ДОМЕН\ПОЛЬЗОВАТЕЛЬ /IM Outlook.exe
Здесь IP-АДРЕС - адрес удаленного компьютера (можно использовать и имя хоста, если компьютеры способны распознавать друг друга таким способом), ДОМЕН - имя домена (если требуется), а ПОЛЬЗОВАТЕЛЬ - имя пользователя, под которым был осуществлен вход на удаленный компьютер.
В заключение
Команда taskkill - весьма мощный и функциональный инструмент, способный избавить от необходимости принудительной перезагрузки компьютера. Умелое использование этой команды в сочетании с Диспетчером задач продлевает время безотказной работы системы и даже позволяет бороться с вирусами, руткитами или троянцами.
Чтобы управлять процессами, при помощи возможностей командной строки, в системе предусмотрено два специальных приложения: tasklist и taskkill . Из их названия можно догадаться и об их предназначении - первое может отображать список всех запущенных процессов на данном компьютере, или на удаленной машине, а вторая умеет их останавливать. Давайте глянем, как это работает на практике.
Введите, в окне терминала, tasklist и командная строка выдаст весь список рабочих процессов на данном компьютере.
Все данные будут отображаться в табличной форме, но можно поменять вид данных в другой формат. Воспользуйтесь параметром /fo
и все отобразится в виде списка (или как CSV), а если использовать параметр /v
, то в этот список будут включены более подробные данные о каждом процессе. Введите команду taskliist /v /fo list
(без кавычек естественно) и в окне должна появиться приблизительно такая картина.
Обычно список выходит немалых размеров, и чтобы не листать его слишком долго, выполним более точный запрос. Для этих целей существует параметр /fi
, способный уточнить поиск процессов используя фильтры. Для примера, введем команду, которая отобразит все процессы, запущенные от имени пользователя user
и занимающие до 40 мегабайт в памяти компьютера. Команда выглядит следующим образом: tasklist /fi »username eq user» /fi »memusage le 40000»
. А на рисунке ниже представлен результат работы команды.
Допустим, мы нашили процессы, которые хотим завершить. Теперь настал черед утилиты «taskkill»
. Для прекращения работы процесса можно использовать его имя, или идентификатор PID
, а можно прекращать процессы используя разные фильтры. Для эксперимента, мы запустим несколько окон программы Блокнот (notepad.exe) и на них испытаем разные способы.
При помощи параметра /f
процесс будет завершен в принудительном порядке, а если добавить еще ключ /t
- завершатся все другие, которые были через него запущенны. Чтобы узнать больше возможностей, для команд tasklist
и taskkill
, добавьте к ним ключ /?
. Он отобразит полную справку для этих утилит. Не будем забывать про такое мощное средство, как PowerShell. Мы можем им воспользоваться и прям в этом же окне командной строки. Чтобы просмотреть весь список процессов, запустите команду Get-Process
.
Чтобы опять не рыться во всех найденных процессах, можно задать фильтр для получения отдельных, соответствующих критериям, процессов. Для этого существует команду Where-Object . Давайте получим табличку с процессами, загружающими процессор на данном компьютере и выстроим их в порядке возрастания нагрузки. Воспользуемся командой следующего вида: Get-Process | where {$_.cpu -gt 0} | sort cpu
Результат будет иметь приблизительно такой вид:
Здесь можно получить полную информацию о любом запущенном процессе. Сейчас мы узнаем список всех свойств процесса cmd . Это можно сделать при помощи такой команды:
Get-Process -Name cmd | Get-Member -Membertype property
Выведем только нужные свойства. Например, оставим только имя, идентификатор процесса, путь к его исполнительному файлу, подключенные модуле и время, когда процесс был запущен. Все это мы выводим списком, при помощи такой команды:
Get-Process -Name cmd | Format-List name, id, path, modules, starttime
Благодаря этому мы узнаем о том, кто запустил процесс, как сильно он грузит систему, где располагается его файл и еще кучу разной, полезной и не очень информации.
Чтобы остановить процесс через используйте специальный командой Stop-Process . Для того, чтобы указать нужный процесс для завершения, используйте его имя или идентификатор. Например, можно по конвейеру прекратить работу блокнота:
Get-Process | where {$_.name -match ″notepad″} | Stop-Process
Для работы с процессами на другом, удаленном компьютере необходимо использовать совсем другой командой - Get-WmiObject . Сейчас посмотрим, какие процессы запущенны на компьютере с именем «PC»:
Get-WmiObject win32_process -computername PC | ft name, processid, description
Чтобы узнать больше информации и различных ключей, для работы с процессами через PowerShell , используйте встроенную справку. Запустите команду Get-Help «имя команды» и появится справка по указанному параметру. Есть еще две дополнительные утилиты, способные выполнять операции с процессами. Ими являются Pslist и Pskill . Изначально их в системе нет, они входят в пакет PSTools .
Сами по себе эти приложения не нуждаются в установке. Их достаточно скопировать в любое место на своем жестком диске. Чтобы запустить, зайдите в папку, где они хранятся, и активируйте нужной командой.
Соответственно, утилита Pslist
способна вывести информацию о процессах, запущенных на компьютере. Можно выборочно находить отдельные процессы и выводить их на экран. Давайте продолжим издеваться над запущенным блокнотом и просмотрим о нем информацию командой pslist notepad -x
.
Интересной функцией Pslist является возможность работы в режиме диспетчера процессов. Вся информация постоянно обновляется и можно задавать подходящий интервал получения актуальных данных. За этот режим ответствен ключ -s . Допустим, необходимо установить режим диспетчера с обновлением каждые десять секунд, эта команда будет выглядеть так: tasklist -s -r 10
Большинство пользователей персональных компьютеров не сталкиваются с потребностью использования какой-либо CMD команды. Многим просто хватает функций, предоставляемых визуальной оболочкой операционной системы. Тем не менее, есть ситуации, когда приходится манипулировать системой напрямую, вот тогда-то и приходит на помощь командная строка.
Это программное обеспечение, входящее в состав стандартных программ системы. CMD предоставляет пользователю возможность работать с системой и файлами напрямую. Приложение имеет текстовый интерфейс, а результат выполнения отображается на экране. Проще говоря, командная строка переводит запросы пользователя в понятную системе форму. Внешне, конечно, программа выглядит для простого пользователя не очень привычно, но при этом обладает рядом положительных свойств, а к тому же она быстрее визуальной составляющей. встроена в каждую версию операционной системы Windows.
Разработчики операционной системы предусмотрели несколько вариантов запуска CMD:
Большинство самых важных команд имеется возможность получить при помощи команды Help. После ввода данного запроса появятся команды CMD Windows с информацией об их способах применения. Все их можно подразделить на несколько достаточно обширных групп. Их разделение происходит по принципу применения. Например, CMD команды запуска используемых команд. Ниже будут представлены самые распространенные из них. Они же и самые необходимые команды строки CMD.
Данный список команд пригодится, если потребуется получить доступ к папкам, расположенным в системе:
Эти команды CMD файла могут пригодиться очень многим пользователям персонального компьютера:
Кроме всех приведенных достоинств, CMD команды позволяют проводить проверки на наличие ошибок в работе жестких дисков или изменять метки томов, а также делать дефрагментацию.
Данный вид команд поможет получить данные о версиях, конфигурациях, а также установленных драйверах:
Команды для управления и изменения параметров операционной системы:
Эта группа команд относится непосредственно к настройке работы CMD. Команды помогут очищать экран, менять его внешний вид и так далее:
У большинства пользователей потребность в данных запросах возникает крайне редко, но профессионалы считают, что данные коды очень помогают при работе с компьютером:
Стоит помнить, что, помимо этих сетевых команд, существуют еще некоторые, которые помогут упростить работу пользователи. Следует помнить, что использовать эти команды нужно только тогда, когда есть уверенность в совершаемом действии. Неправильное использование команд CMD может привести к серьезным проблемам в работе персонального компьютера.
Помимо приведенных команд, существует еще огромное количество прочих:
Все приведенные CMD команды позволят упростить работу с некоторыми программными средствами. Главное, не пытаться использовать запросы не по их прямому назначению, дабы избежать потерь важной информации и прочих нежелательных последствий.
В данном видео мы рассмотрим команду Taskkill , которая позволяет завершать определенные процессы из командной строки в операционной системе Windows. Но в начале, как всегда, рассмотрим, зачем это вообще может понадобиться.
На обычных рабочих станциях данная команда не особо востребована, так как можно завершить процесс через диспетчер задач. Хотя, не всегда это получается и в данной ситуации команда Taskkill пригодится, но, это скорее исключение из правил.
В основном, данная команда используется системными администраторами и лично я сталкивался со следующими ситуациями:
1) Обновление программ на терминальном сервере – при администрировании терминального сервера большое количество людей может запустить одно и тоже приложение. Но, в большинстве случаев, при обновлении программы её необходимо сначала закрыть, т.е. завершить её процесс. Если клиентов не много, то, можно воспользоваться диспетчером задач, а если их порядка 100, то это уже проблематично. А команда Taskkill позволяет убить все процессы для определенного приложения.
2) Автоматический перезапуск программы – как вы знаете не все программы работают идеально и бывает, что они подвисают. А если данная программа должна работать 24 часа в сутки и 7 дней в неделю, то приходится периодически проверять её работоспособность.
Лично я сталкивался со следующей ситуацией: есть интернет магазин, в который данные о товарах выгружаются из 1С-ки. Но, обработчик написан как-то криво, в результате чего обмен подвисает раз в сутки, а то и через каждые 2-3 часа. По этому, появилась необходимость каждый час принудительно перезапускать обработчик, не зависимо от того, подвисла программа или нет.
И так, перейдем к практике.
Запустим браузер Google Chrome и попробуем завершить его процесс (Пуск \ Стандартные \ Выполнить \ cmd \ taskkill /? - чтобы посмотреть синтаксис команды)
/s КОМПЬЮТЕР, где КОМПЬЮТЕР - это IP или адрес удаленного компьютера. По умолчанию, операция выполняется в локальной системе. Если именно это вас и интересует, данную опцию можно не использовать.
/u ДОМЕН\ПОЛЬЗОВАТЕЛЬ , где ДОМЕН - это имя домена, а ПОЛЬЗОВАТЕЛЬ - имя пользователя, для которого нужно выполнить команду. Данная опция позволяет запускать taskkill с правами определенной учетной записи или домена.
/p - обязательно используется в сочетании с опцией /u для указания пароля к учетной записи пользователя.
/fi - позволяет выполнять команду taskkill с определенными фильтрами.
/f - принудительно завершает выполнение команды.
/IM - позволяет использовать имя приложения вместо идентификатора процесса.
/T - завершение дерева процессов.
Теперь нам нужно узнать имя приложения, которое использует данный процесс. Это можно сделать через диспетчер задач (Ctrl + Alt + Del \ Запустить диспетчер задач \ Процессы \ chrome . exe ).
Если у вас нет возможности запустить диспетчер задач, допустим, вы подключились к компьютеру удаленно через командную строку, то можно воспользоваться командой tasklist , она так же отображает все процессы.
Taskkill / f / im chrome . exe – принудительно завершить приложение с именем chrome.exe
Chrome завершил работу, но появились ошибки «Не удалось завершить процесс, ни один из экземпляров задания не запущен». Данное сообщение появляется из-за того, что эти процессы были связанными и когда завершил работу основной, остальные автоматически завершились.
Теперь запустим Chrome под разными пользователями, чтобы сымитировать работу терминального сервера, для этого запустим под обычным пользователем и под пользователем XP (Chrome \ Shift \ ПКМ \ Запустить от имени другого пользователя \ ОК ). Теперь мы видим, что одно и тоже приложение запущено под разными пользователями, повторим команду Taskkill / f / im chrome . exe , чтобы проверить, для всех ли пользователей будет завершен процесс.
Теперь попробуем сделать автоматический перезапуск приложения, в этом нам поможет планировщик задач (Пуск \ Все программы \ Стандартные \ Служебные \ Планировщик заданий \ Библиотека планировщика \ ПКМ \ Создать папку \ Перезапуск Chrome – в зависимости от вашей цели )
Создаем задачу на запуск (Создать новую задачу \ Запуск \ Выполнять с наивысшими правами \ Триггер: по расписанию, ежедневно, начиная с 11:00, повторять каждый час бесконечно, включено \ Действия: запуск программы, chrome \ ОК )
Создадим задачу на завершение процесса (Создать новую задачу \ Завершение \ Выполнять с наивысшими правами \ Триггер: по расписанию, ежедневно, начиная с 10:59:50, повторять каждый час бесконечно, включено \ Действия: запуск программы, Taskkill , дополнительные аргументы: / f / im chrome . exe \ ОК )
Теперь запустим Chrome и подведем часы к более близкому времени, чтобы увидеть, как Хром завершит работу, а потом запустится заново.
Однако, порой требуется запретить только процесс запущенный под определенным пользователем. Именно такая ситуация у меня возникла с обработчиком 1С, который выгружал данные о товарах на сайт.
Дело в том, что, можно каждый час перезапускать зависшую 1С-ку, но, если завершать все процессы 1С, то все удаленные пользователи будут из неё вылетать, а этого нельзя допустить. По этому, нужно завершать процесс, запущенный из под определенной учетной записи.
Для этого в дополнительные аргументы добавим следующую строчку / fi “ username eq station -4-7” данная команда фильтрует по имени пользователя и завершает процесс только того, чье имя совпадает с указанным в фильтре.
Запустим Chrome под другим пользователем и посмотрим, сработал ли фильтр.
Нередко неопытные пользователи воспринимают командную строку Windows как нечто совершенно ненужное и отжившее свой век. Думать так - это большая ошибка. Значение командной строки или иначе консоли CMD трудно переоценить даже после того как она потеряла большую часть своих команд доступных в MSDOS.
Достоинство командной строки заключается, прежде всего, в обеспечении прямого доступа к операционной системе и её скрытым возможностям, кроме того консоль CMD имеет в себе несколько полезнейших встроенных утилит предназначенных для работы с программными и аппаратными компонентами компьютера.
Быть асом командной строки совершенно не обязательно, тем не менее, есть команды, которые должен знать каждый уважающий себя пользователь Windows. Вот они.
Большинство пользовательских файлов в операционной систем связаны с определёнными программами, которые обрабатывает их по умолчанию. Такая связь называется ассоциацией. Для её просмотра как раз и существует команда assoc. При её выполнении выводится список сопоставлений расширений и типов файлов. А ещё команда assoc позволяет изменять ассоциации.
Например командой assoc .html = txtfile для файлов с расширением HTML устанавливается тип файла txtfile (текстовый). Если же вам нужно узнать какой именно программой открываются файлы с таким расширением, используйте команду ftype txtfile.
Эта команда предназначается для шифрования и дешифрования данных на дисках с файловой системой NTFS, но с таким же успехом она может использоваться для зачистки свободного дискового пространства. Пользоваться ей очень просто. Если вам нужно гарантированно удалить остатки всех ранее удалённых файлов на диске D, выполните в консоли команду cipher /w:D.
Полезная команда позволяющая просмотреть список всех установленных в операционной системе драйверов. При выполнении команды без параметров данные выводятся в виде отсортированного списка. Колонка «Модуль» содержит имена драйверов без расширения, колонка «Название» включает краткое описание драйвера, «Тип драйвера» - соответственно тип, «Дата ссылки» указывает на дату установки или последней модификации драйвера.
Команда FC пригодится в основном кодерам, также она может использоваться теми юзерами, которым приходится работать с текстовыми файлами. Эта команда позволяет сравнивать содержимое двух файлов, отыскивая между ними несоответствия. Допустим, у вас имеются два файла file1.docx и file2.docx и вы хотите их сравнить. Выполните в консоли следующую команду:
Fc /U "D:\file1.docx" "D:\file2.docx"
В данном примере мы сравнили два простых текстовых документа. Интерпретатор командной строки нашел несоответствие в одном из предложений и указал конкретное место. Команда FC также позволяет сравнивать бинарные файлы, файлы в кодировке юникод, определять число несоответствий и т.п. Если сравниваемые файлы окажутся идентичными, при выполнении команды FC будет выведено соответствующее сообщение.
Полезная команда позволяющая определить текущие настройки протокола TCP/IP или попросту IP-адрес. Однако показывает она только внутренний IP-адрес, если же вы используете роутер и хотите узнать тот IP, с которым вы выходите в глобальную Сеть, лучше обратиться к помощи специальных онлайновых сервисов типа 2ip.ru.
Эта команда выводит список всех текущих интернет-соединений. Используется она в основном администраторами для отображения TCP и UDP-соединений, прослушиваемых портов, таблиц маршрутизации и статистических данных для различных протоколов. Также может использоваться для поиска следов, оставляемых вирусами и прочими вредоносными объектами. Выполненная без параметров команда Netstat отображает тип соединения, локальный адрес, внешний адрес и текущее состояние.
Как и Netstat команда ping используется в основном системными администраторами. Служит она для диагностики компьютерных сетей. С её помощью можно определять доступность тех или иных ресурсов. Допустим вам нужно проверить доступность Google. Поскольку DNS сервер Google имеет адрес 8.8.8.8, в консоли CMD нужно выполнить команду ping 8.8.8.8.
Цифровой IP-адрес также может быть заменён текстовым URL-адресом - ping google.com. Если узел окажется недоступен будет выведено сообщение «превышен лимит ожидания», а количество потерь при этом составит 100 процентов.
Ещё одна «сетевая» команда, предназначенная для диагностики сети (трассировки). Команда позволяет получить цепочку узлов, через которые проходит IP-пакет, адресованный конечному узлу. Используется системными администраторами для выявления неполадки, препятствующей доставке пакетов конечному узлу. Примером использования команды может послужить трассировка к узлу того же Google: tracert google.com.
Работает эта команда примерно так же как и tracert, но в отличие от последней является более функциональной. Команда выполняет трассировку плюс отправку запросов на промежуточные узлы маршрута для сбора информации о задержках и потерях пакетов на каждом из них.
Мощная утилита командной строки, предназначенная для управления параметрами электропитания Windows. Выполняется только с параметрами. Выполненная с ключом /Q команда Powercfg выводит текущую конфигурацию схемы электропитания, с ключом /a выводит отчет об использовании электроэнергии в ноутбуках, с ключом –energy генерирует детальный текстовый лог о состоянии компонентов компьютера, включая аккумуляторные батареи. Также команда Powercfg может использоваться для создания резервных копий настроек электропитания и развёртывания их на новом оборудовании.
Эта команда используется для завершения сеанса пользователя, выключения, перезагрузки и перевода компьютера в режим гибернации. Поддерживает удалённое управление. Выполняется shutdown всегда с параметрами. Например, команда вида shutdown /s /t 0 приведёт к завершению работы открытых приложений и немедленному выключению компьютера. Посмотреть список доступных ключей можно выполнив в консоли shutdown /?.
Одна из самых полезных и нужных команд. Предназначается для обнаружения и восстановления повреждённых или модифицированных системных файлов Windows. Восстановление производится из резервных копий создаваемых самой операционной системой. Чтобы запустить сканирование системы с последующим восстановлением файлов выполните команду sfc с параметром /scannow. После завершения проверки потребуется перезагрузка компьютера. Выполнять эту команду нужно в консоли, запущенной от имени администратора.
Команда Tasklist делает ту же работу, что и Диспетчер задач. Выполненная без параметров она выводит список всех запущенных процессов выполняющихся на локальном или удалённом компьютере. При этом для каждого процесса отображается его название, идентификатор (PID), имя сессии, номер сеанса и выделенный объём оперативной памяти. Команда Tasklist поддерживает использование ключей и фильтров. Например, Tasklist /SVC выводит список процессов вместе со службами для каждого процесса в отдельности.
Если Tasklist просто выводит список запущенных процессов, то Taskkill завершает их работу в принудительном режиме. Правда для этого вам потребуется знать идентификатор завершаемого процесса или название исполняемого файла. Допустим, вам нужно принудительно закрыть Блокнот. Выполняем для начала команду Tasklist и смотрим PID процесса notepad.exe. В нашем случае он имеет значение 2580. Зная PID процесса его легко можно «убить». Сама же команда будет выглядеть так: Taskkill /PID 2580. Примерно так же сработает команда Taskkill /IM notepad.exe, только в этом примере будут завершены все экземпляры процесса notepad.exe.
На этом пока всё. Есть и другие полезные команды CMD, с которыми пользователям желательно было бы познакомиться, но о них мы расскажем в следующий раз. К таковым в частности относится Diskpart - мощный инструмент управления дисками и разделами не уступающий возможностями коммерческим программным продуктам типа Acronis Disk Director.
Имеет ли смысл изучать командную строку профессионально? Вряд ли, если только вы не собираетесь становиться программистом или системным администратором.
Впрочем, желающим освоить консоль CMD не мешало бы также обратить внимание на её продвинутый аналог - встроенную утилиту PowerShell.