Basic tasklist command
If all you want
to know is what tasks are running, enter TASKLIST
into the command line.
The output can be redirected to a file if you wish.
The default format is a table with several columns of information. An example
of a partial console output is shown in the figure below. There are five
columns of information.
The following list gives the meanings of the various column headings:
Filtering tasklist output
The output can be narrowed down to specific parameters by using filters and the
switch /FI. There are a number of comparison operators
and these are given in Table II.
| Operator | Description |
|---|---|
| eq | Equals |
| ne | Does not equal |
| gt | Greater than. Only used with numeric values |
| lt | Less than. Only used with numeric values |
| ge | Greater than or equal to. Only used with numeric values |
| le | Less than or equal to. Only used with numeric values |
Find which dll files are used by a process
Processes can be using many different DLL files by calling on various procedures
from their libraries. It is not uncommon for a problem to arise because a DLL
is corrupted or is the wrong version. To find which DLLs are used by each process
use the commandtasklist /mThis will return a table relating
Image Name, PID, and Modules. “Modules” here indicates DLLs. The table
may have quite a few entries and the list can be limited to a specific DLL by
using its name in the command. For example, to see only the processes that use oleaut32.dll,
entertasklist
/m oleaut32.dll
Find which services use a process
It can be very useful to know the relationship between a process and the services
that are running on a system (for a discussion of services) To obtain a table relating Image Name, PID, and Services use
the command tasklistHere I have shown the redirect to a file to illustrate
/svc >list.txt
creating a text record. One application of this command is for diagnosing
problems with a service by monitoring the memory usage and other properties
of the processes associated with the service.
Примеры команды tasklist
Чтобы понять применение в синтаксисе команды информации о компьютере и пользователе, рассмотрим пример.
Проверка выполняемых задач на компьютере с именем Mail: tasklist /s mail
Поля, выводимые Tasklist, содержат следующую информацию:
Список заданий
Список задач — это утилита, которая перечисляет запущенные в данный момент процессы на локальном или удаленном компьютере. Вы можете быстро проверить, какие процессы работают в фоновом режиме, а затем прекратить такие процессы; мы можем использовать команду Taskkill, чтобы убить его.
Синтаксис:
Тасккилл
Имя говорит само за себя; Как только вы определили, какой процесс вам нужно убить, вы можете использовать Taskkill, чтобы удалить программу из списка запущенных процессов.
Синтаксис:
Управление процессами из командной строки
Способов управлять процессами в Windows предостаточно, и командная строка занимает в них далеко не первое место. Однако иногда бывают ситуации, когда все остальные инструменты кроме командной строки недоступны, например некоторые вредоносные программы могут блокировать запуск Task Manager и подобных ему программ. Да и просто для общего развития полезно знать способы управления компьютером из командной строки.
Для управления процессами в командной строке есть две утилиты — tasklist и taskkill. Первая показывает список процессов на локальном или удаленном компьютере, вторая позволяет их завершить. Попробуем …
Если просто набрать команду tasklist в командной строке, то она выдаст список процессов на локальном компьютере.

По умолчанию информация выводится в виде таблицы, однако ключ /fo позволяет задать вывод в виде списка или в формате CSV, а ключ /v показывает более подробную информацию о процессах, например команда tasklist /v /fo list выведет подробное описание всех процессов в виде списка.

Список получится довольно большой, поэтому попробуем уточнить запрос. Для этого используем ключ /fi , который позволяет использовать фильтры для вывода данных, например команда tasklist /fi ″username eq user″ /fi ″memusage le 40000″ выводит список процессов пользователя user, которые потребляют не больше 40Мб памяти.

Найдя процессы, которые необходимо завершить, воспользуемся командой taskkill. Завершать процессы можно по имени, идентификатору процесса (PID) или задав условия с помощью фильтров. Для примера запустим несколько экземпляров блокнота (notepad.exe) и попробуем завершить его разными способами.

Ключ /f завершает процесс принудительно, а /t завершает все дочерние процессы.
Полную справку по командам tasklist и taskkill можно получить, введя их с ключом /?
Теперь пустим в ход тяжелую артиллерию — PowerShell. Его можно запустить не выходя из командной строки. Для получения списка процессов используем командлет Get-Process.

Чтобы не выводить весь список процессов можем воспользоваться командлетом Where-Object, который задает фильтр для выводимой информации. Для примера выведем список процессов, которые загружают процессор и отсортируем их по возрастанию нагрузки с помощью команды:
Get-Process | where {$_.cpu -gt 0} | sort cpu

С помощью PowerShell мы можем получить любую информацию о любом процессе. В качестве примера возьмем процесс cmd и выведем список его свойств командой:
Get-Process -Name cmd | Get-Member -Membertype property

Выбираем те свойства, что нам интересны ( в примере имя и ID процесса, путь к файлу, используемые модули и время запуска) и выводим их в виде списка командой:
Get-Process -Name cmd | Format-List name, id, path, modules, starttime

Таким образом мы можем посмотреть когда и кем был запущен процесс, сколько он потребляет ресурсов, где находится исполняемый файл и еще много различной информации.
Для завершения процесса в PowerShell есть командлет Stop-Process. Он завершает указанный процесс по его имени или идентификатору. Однако мы поступим по другому и передадим результат выполнения командлета Get-Process по конвейеру:
Get-Process | where {$_.name -match ″notepad″} | Stop-Process

Get-Process не может показать процессы на удаленном компьютере, для этого воспользуемся командлетом Get-WmiObject , например посмотрим процессы на удаленном компьютере PC командой:
Get-WmiObject win32_process -computername PC | ft name, processid, description

Для боле полного ознакомления с PowerShell можно воспользоваться встроенной справкой, для вызова справки нужно набрать Get-Help ″имя командлета″
Ну и для полноты обзора рассмотрим еще одно средство для управления процессами из командной строки. Это утилиты Pslist и Pskill входящие в состав пакета PSTools от компании Sysinternals.
Эти утилиты не требуют специальной установки, достаточно просто скопировать их на диск. Для запуска нужно зайти в папку с утилитами и ввести в командной строке необходимую команду.

Pslist может выводить информацию о процессах по имени или ID, например командой pslist notepad -x выведем подробную информацию о нашем «многострадальном» блокноте.

Особенностью утилиты Pslist является режим task-manager. В этом режиме информация автоматически обновляется, причем можно задать время работы и интервал обновления. Запускается режим ключом -s , например командой tasklist -s -r 10 запускаем режим программу в режиме task-manager с обновлением раз в 10 сек.

Завершение процесса программой pskill предельно просто, вводим команду и имя (или ID) процесса и все.

Справку по утилитам Pslist и Pskill можно посмотреть, введя команду с ключом /?
И еще, все манипуляции с процессами необходимо выполнять с правами администратора, для этого командную строку требуется запускать с повышением привилегий.




