Просмотр процессов cmd. CMD команды: список, описание и применение. Сетевые команды CMD. Системные и пользовательские процессы

Чтобы управлять процессами, при помощи возможностей командной строки, в системе предусмотрено два специальных приложения: 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

В данном видео мы рассмотрим команду 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 позволяет изменять ассоциации.

Например командой assoc .html = txtfile для файлов с расширением HTML устанавливается тип файла txtfile (текстовый). Если же вам нужно узнать какой именно программой открываются файлы с таким расширением, используйте команду ftype txtfile.

Cipher

Эта команда предназначается для шифрования и дешифрования данных на дисках с файловой системой NTFS, но с таким же успехом она может использоваться для зачистки свободного дискового пространства. Пользоваться ей очень просто. Если вам нужно гарантированно удалить остатки всех ранее удалённых файлов на диске D, выполните в консоли команду cipher /w:D.

Driverquery

Полезная команда позволяющая просмотреть список всех установленных в операционной системе драйверов. При выполнении команды без параметров данные выводятся в виде отсортированного списка. Колонка «Модуль» содержит имена драйверов без расширения, колонка «Название» включает краткое описание драйвера, «Тип драйвера» - соответственно тип, «Дата ссылки» указывает на дату установки или последней модификации драйвера.

FC (File Compare)

Команда FC пригодится в основном кодерам, также она может использоваться теми юзерами, которым приходится работать с текстовыми файлами. Эта команда позволяет сравнивать содержимое двух файлов, отыскивая между ними несоответствия. Допустим, у вас имеются два файла file1.docx и file2.docx и вы хотите их сравнить. Выполните в консоли следующую команду:

Fc /U "D:\file1.docx" "D:\file2.docx"

В данном примере мы сравнили два простых текстовых документа. Интерпретатор командной строки нашел несоответствие в одном из предложений и указал конкретное место. Команда FC также позволяет сравнивать бинарные файлы, файлы в кодировке юникод, определять число несоответствий и т.п. Если сравниваемые файлы окажутся идентичными, при выполнении команды FC будет выведено соответствующее сообщение.

Ipconfig

Полезная команда позволяющая определить текущие настройки протокола TCP/IP или попросту IP-адрес. Однако показывает она только внутренний IP-адрес, если же вы используете роутер и хотите узнать тот IP, с которым вы выходите в глобальную Сеть, лучше обратиться к помощи специальных онлайновых сервисов типа 2ip.ru.

Netstat

Эта команда выводит список всех текущих интернет-соединений. Используется она в основном администраторами для отображения TCP и UDP-соединений, прослушиваемых портов, таблиц маршрутизации и статистических данных для различных протоколов. Также может использоваться для поиска следов, оставляемых вирусами и прочими вредоносными объектами. Выполненная без параметров команда Netstat отображает тип соединения, локальный адрес, внешний адрес и текущее состояние.

Ping

Как и Netstat команда ping используется в основном системными администраторами. Служит она для диагностики компьютерных сетей. С её помощью можно определять доступность тех или иных ресурсов. Допустим вам нужно проверить доступность Google. Поскольку DNS сервер Google имеет адрес 8.8.8.8, в консоли CMD нужно выполнить команду ping 8.8.8.8.

Цифровой IP-адрес также может быть заменён текстовым URL-адресом - ping google.com. Если узел окажется недоступен будет выведено сообщение «превышен лимит ожидания», а количество потерь при этом составит 100 процентов.

Tracert

Ещё одна «сетевая» команда, предназначенная для диагностики сети (трассировки). Команда позволяет получить цепочку узлов, через которые проходит IP-пакет, адресованный конечному узлу. Используется системными администраторами для выявления неполадки, препятствующей доставке пакетов конечному узлу. Примером использования команды может послужить трассировка к узлу того же Google: tracert google.com.

Pathping

Работает эта команда примерно так же как и tracert, но в отличие от последней является более функциональной. Команда выполняет трассировку плюс отправку запросов на промежуточные узлы маршрута для сбора информации о задержках и потерях пакетов на каждом из них.

Powercfg

Мощная утилита командной строки, предназначенная для управления параметрами электропитания Windows. Выполняется только с параметрами. Выполненная с ключом /Q команда Powercfg выводит текущую конфигурацию схемы электропитания, с ключом /a выводит отчет об использовании электроэнергии в ноутбуках, с ключом –energy генерирует детальный текстовый лог о состоянии компонентов компьютера, включая аккумуляторные батареи. Также команда Powercfg может использоваться для создания резервных копий настроек электропитания и развёртывания их на новом оборудовании.

Shutdown

Эта команда используется для завершения сеанса пользователя, выключения, перезагрузки и перевода компьютера в режим гибернации. Поддерживает удалённое управление. Выполняется shutdown всегда с параметрами. Например, команда вида shutdown /s /t 0 приведёт к завершению работы открытых приложений и немедленному выключению компьютера. Посмотреть список доступных ключей можно выполнив в консоли shutdown /?.

Sfc (System File Checker)

Одна из самых полезных и нужных команд. Предназначается для обнаружения и восстановления повреждённых или модифицированных системных файлов Windows. Восстановление производится из резервных копий создаваемых самой операционной системой. Чтобы запустить сканирование системы с последующим восстановлением файлов выполните команду sfc с параметром /scannow. После завершения проверки потребуется перезагрузка компьютера. Выполнять эту команду нужно в консоли, запущенной от имени администратора.

Tasklist

Команда Tasklist делает ту же работу, что и Диспетчер задач. Выполненная без параметров она выводит список всех запущенных процессов выполняющихся на локальном или удалённом компьютере. При этом для каждого процесса отображается его название, идентификатор (PID), имя сессии, номер сеанса и выделенный объём оперативной памяти. Команда Tasklist поддерживает использование ключей и фильтров. Например, Tasklist /SVC выводит список процессов вместе со службами для каждого процесса в отдельности.

Taskkill

Если Tasklist просто выводит список запущенных процессов, то Taskkill завершает их работу в принудительном режиме. Правда для этого вам потребуется знать идентификатор завершаемого процесса или название исполняемого файла. Допустим, вам нужно принудительно закрыть Блокнот. Выполняем для начала команду Tasklist и смотрим PID процесса notepad.exe. В нашем случае он имеет значение 2580. Зная PID процесса его легко можно «убить». Сама же команда будет выглядеть так: Taskkill /PID 2580. Примерно так же сработает команда Taskkill /IM notepad.exe, только в этом примере будут завершены все экземпляры процесса notepad.exe.

Итог

На этом пока всё. Есть и другие полезные команды CMD, с которыми пользователям желательно было бы познакомиться, но о них мы расскажем в следующий раз. К таковым в частности относится Diskpart - мощный инструмент управления дисками и разделами не уступающий возможностями коммерческим программным продуктам типа Acronis Disk Director.

Имеет ли смысл изучать командную строку профессионально? Вряд ли, если только вы не собираетесь становиться программистом или системным администратором.

Впрочем, желающим освоить консоль CMD не мешало бы также обратить внимание на её продвинутый аналог - встроенную утилиту PowerShell.

В данной статье я хочу рассмотреть способы как получить список процессов Windows . С одной стороны, операционная система предоставляет в распоряжение пользователя стандартный диспетчер задач, который, в принципе, и позволяет выводить список запущенных процессов Windows и приложений, но, порой приходится использовать и другие методы для получения информации о процессах операционной системы, это часто бывает, если стандартный диспетчер был заблокирован вирусом. И так, приступим. Я рассмотрю следующие методы.

Использование средств WMI посредством написания сценариев
- Встроенная утилита командной строки tasklist

Список процессов Windows с помощью средств WMI

Давайте рассмотрим два варианта вывода списка процессов системы Windows, один с помощью js-скрипта, а второй с помощью vbs-скрипта. Открываем программу Notepad++ и создаем сценарий под названием PSList.js. Для работы с нам надо будет в качестве параметра функции GetObject() указать "winMgmts:". Для обработки исключительных ситуаций будем брать стандартную конструкцию try ... catch языка jscript. Я приведу код сценария целиком, с предварительным пояснением используемых в нем лексем:
vbCritical – константа, которая задает вид значка диалогового окна
Popup – метод объекта WshShell
Enumerator – объект, используемый для перебора всех элементов коллекции, в нашем случае коллекция будет хранить данные о работающих процессах

Что бы получить информацию, мы используем класс Process схемы Win32. Выполняя SQL-запрос вида SELECT * FROM Win32_Process мы, собственно получим нужную нам коллекцию, сам запрос выполняется с помощью метода ExecQuery().
While – с помощью данного цикла мы будем просматривать все элементы,

Вот собственно, сам код сценария:

//PsList.JS //Вывод списка процессов Windows //******************************************* // Объявляем переменные var PsWMI, PsProcesses1, PsProcess1, PsList1, Mess1; var vbCritical= 16 ; //Создаем экземпляр объекта WshShell var WshShell = WScript.CreateObject ("WScript.Shell" ) ; //Включаем обработку исключительных ситуаций try { //Соединяемся с WMI PsWMI= GetObject("winMgmts:" ) ; } //Начинаем обработку возможных ошибок catch (e) { if (e!= 0 ) { Mess = "Ошибка\n Код ошибки: " + err.Number ; WshShell.Popup (Mess, 0 , "Запущенные прoцеccы" , vbCritical) ; WScript.Quit () ; } } //Создаем кoллeкцию всех работающих процеccoв PsProcesses1= new Enumerator(PsWMI.ExecQuery ("SELECT * FROM Win32_Process" ) ) ; PsList1= "Зaпущенныe прoцеccы\n \n " ; //Цикл для перебора коллекции while (! PsProcesses1.atEnd () ) { PsProcess1= PsProcesses1.item () ; PsList1+= PsProcess1.Name + " " + PsProcess1.ProcessID + "\n " ; PsProcesses1.moveNext () ; } //Выводим кoллeкцию процеccов и их идентификаторов WScript.Echo (PsList1) ; //************* Конец ********************

Теперь приступим к написанию vbs сценария для вывода списка Windows процессов:

" PsList.VBS "Вывод списка процессов Windows "********************************************** " Включаем обработку исключительных ситуаций On Error Resume Next " Объявляем переменные Dim PsWMI, PsProcesses, PsProcess, PsList, Mess " Создаем экземпляр объекта WshShell set WshShell = WScript.CreateObject ("WScript.Shell" ) " Производим соединение с WMI set PsWMI=GetObject ("winmgmts:" ) " Проверка на ошибку If Err.Number <> 0 Then Mess ="Ошибка" &vbCrLf & "Код ошибки: " & err.Number WshShell.Popup Mess,0,"Зaпущенныe процеccы" ,vbCritical Else " Производи SQL запрос для получения кoллeкции set PsProcesses=PsWMI.ExecQuery("SELECT * FROM Win32_Process" ) PsList="Зaпущeнные проoцeссы" & vbCrLf & vbCrLf " Производи перебор For Each PsProcess in PsProcesses PsList=PsList & PsProcess.Name & vbTab & PsProcess.ProcessID & vbCrLf NEXT "Выводим список прoцесcов их идентификаторов WScript.Echo PsList End if "*************Конец***************************************

Список процессов Windows с помощью CMD

В отличии от сервера Windows Script Host, где надо подключать WMI, командная строка имеет в своем составе стандартную утилиту tasklist для просмотра Windows списка процессов. Давайте рассмотрим основной синтаксис данной утилиты:

Основной способ отображения управляется с помощью ключей, смотрим:

/s – позволяет задать имя или IP-адрес удаленного компьютера (обратную косую черту использовать не надо), по дефолту используется имя локальной, текущей машины.
/u – позволяет выполнить команду с правами учетной записи пользователя, который указывается как пользователь или домен/пользователь. По дефолту будут браться права текущего пользователя, который вошел в систему и запустил утилиту.
/p – задает пароль для учетной записи юзера, которая задана ключом /u .
/fo – тут задается формат вывода данных, допустимые значения - TABLE , LIST и CSV , по умолчанию используется значение TABLE .
/nh - Запрещает вывод заголовков столбцов. Этот параметр будет актуальным, если ключ /fo имеет значение TABLE или CSV .
/fi – Это фильтр, который дает возможность отфильтровать список выводимых процессов Windows по заданному критерию, например: TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running".
/m – Отображает все задачи, которые загрузили DLL модули, что отвечают заданному критерию. Если модуль не указан, то выводятся все модули, закруженные каждой задачей, например, /M wbem*. Данный ключ недопустимо прописывать одновременно с ключами /svc и /v .
/svc - Отображает без обрезки сведения о всех службах для каждого прoцессa. Данный аргумент является допустимым, если /fo имеет значение TABLE . Нельзя брать совместно с /m и /v
/v – Отображать подробную информацию. Несовместим с /svc и /m .

Задает отображение подробных сведений о задании в выходных данных. Нельзя брать совместно с /svc и /m .

В добавок, хотелось бы еще упомянуть утилиту PsList из набора PsUtils и программу Process Explorer для Windows, которые также позволяют выводить список процессов Windows.