Windows посмотреть процессы из командной строки

Способов управлять процессами в Windows предостаточно, и командная строка занимает в них далеко не первое место. Однако иногда бывают ситуации, когда все остальные инструменты кроме командной строки недоступны, например некоторые вредоносные программы могут блокировать запуск Task Manager и подобных ему программ. Да и просто для общего развития полезно знать способы управления компьютером из командной строки.

Для управления процессами в командной строке есть две утилиты — tasklist и taskkill. Первая показывает список процессов на локальном или удаленном компьютере, вторая позволяет их завершить. Попробуем …

Если просто набрать команду tasklist в командной строке, то она выдаст список процессов на локальном компьютере.

команда tasklist

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

команда tasklist

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

команда tasklist

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

команда taskkill

Ключ /f завершает процесс принудительно, а /t завершает все дочерние процессы.

Полную справку по командам tasklist и taskkill можно получить, введя их с ключом /?

Теперь пустим в ход тяжелую артиллериюPowerShell. Его можно запустить не выходя из командной строки. Для получения списка процессов используем командлет Get-Process.

командлет Get-Process

Чтобы не выводить весь список процессов можем воспользоваться командлетом Where-Object, который задает фильтр для выводимой информации. Для примера выведем список процессов, которые загружают процессор и отсортируем их по возрастанию нагрузки с помощью команды:

Get-Process | where {$_.cpu -gt 0} | sort cpu

фильтруем вывод процессов

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

Get-Process -Name cmd | Get-Member -Membertype property

смотрим свойства процесса cmd

Выбираем те свойства, что нам интересны ( в примере имя и 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

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

подробный вывод информации о процессе

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

task-manager mode

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

завершение процесса

Справку по утилитам Pslist и Pskill можно посмотреть, введя команду с ключом /?

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

Is there a command equivalent to ‘ps’ on Unix that can list all processes on a Windows machine?

asked Sep 10, 2008 at 5:50

readonly's user avatar

1

Working with cmd.exe:

tasklist

If you have Powershell:

get-process

Via WMI:

wmic process

(you can query remote machines as well with /node:ComputerOrIP, and there are a LOT more ways to customize this command: link)

aggserp4's user avatar

answered Sep 10, 2008 at 5:52

Factor Mystic's user avatar

Factor MysticFactor Mystic

12.7k7 gold badges47 silver badges53 bronze badges

6

I wanted to mention that WMIC (pam’s entry) can do a lot more. Have a look at my WMIC snippets page, which is a cheatsheet showing many of the common ways to use WMIC (with sample output shown) here

answered Sep 15, 2008 at 9:53

user4197's user avatar

user4197user4197

5674 silver badges10 bronze badges

2

  1. Tasklist

  2. WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption,Commandline,Processid

or

 WMIC /OUTPUT:C:\ProcessList.txt path win32_process get Caption,Processid,Commandline

answered Feb 15, 2010 at 8:06

I tried on Windows 7. The command is: TASKLIST /FI "IMAGENAME eq application_name"

Eg: c:\>TASKLIST /FI "IMAGENAME eq notepad.exe"

To show all process with port details:

c:\> TASKLIST

Also to kill the process you can use c:\> pskill or tskill processname

Eg: c:\> tskill notepad

answered Nov 8, 2011 at 11:56

3

tasklist or pslist from sysinternals. Also, get-process is amazing from PowerShell.

answered Sep 10, 2008 at 5:57

Hafthor's user avatar

HafthorHafthor

9801 gold badge13 silver badges23 bronze badges

If you use Powershell, it has the ‘ps’ command (it is aliased to Get-Process)

answered Sep 10, 2008 at 7:48

user15123's user avatar

1

To kill a process use:

TASKKILL /F /IM processname.exe

For example:

TASKKILL /F /IM firefox.exe

Gaff's user avatar

Gaff

18.6k15 gold badges57 silver badges68 bronze badges

answered May 8, 2013 at 11:58

1

If you running windows XP try using the ‘tasklist’ command. I tried it out with Vista and it seems to also work.

answered Sep 10, 2008 at 5:52

Marcel's user avatar

MarcelMarcel

3711 gold badge2 silver badges5 bronze badges

open windows command prompt

C:\>tasklist                       // list all the tasks


C:\>Taskkill /IM firefox.exe /F     // Kill task by name

or

C:\>Taskkill /PID 26356 /F           // kill task by PId

answered Jun 1, 2018 at 4:58

spacedev's user avatar

Use this command to see all the processes in windows machine

tasklist /svc

answered Sep 5, 2014 at 7:30

LOKESH's user avatar

LOKESHLOKESH

1311 silver badge6 bronze badges

4

I had following problem on Windows 2003 SP2: Tasklist didn’t return any output on stdout or stderr, when called from a process started as Windows service (even under Local Account). Tasklist returned with the (undocumented) code 128.

Called from the same program started as a normal process (not as service), it did run.

No help to change it. I couldn’t find any reason or solution but use «pslist /accepteula» of sysinternal instead of it.

Same problem with taskkill: I had to replace it whith pskill.

answered May 16, 2012 at 6:58

Olivier Faucheux's user avatar

I have done a msproject ( c source code) , archive is available at :
lsproc.zip project archive

and exe file:
lsproc.exe binary

this is a command line tool
output:

lsproc 
Thierry Bremard
[email protected]
list binary files and driver with their local path on disks
most of code retreived from msdn site
--------------------

Process ID: 0
--------------------

Process ID: 4
<unknown>  (PID: 4)
<unknown>
    PageFaultCount             : 0x00002E4B
    PeakWorkingSetSize         : 0x00419000
    WorkingSetSize (Mem usage) : 0x0003A000 (232 ko)
    QuotaPeakPagedPoolUsage    : 0x00000000
    QuotaPagedPoolUsage        : 0x00000000
    QuotaPeakNonPagedPoolUsage : 0x00000000
    QuotaNonPagedPoolUsage     : 0x00000000
    PagefileUsage              : 0x00000000
    PeakPagefileUsage          : 0x00000000
--------------------

Process ID: 764
smss.exe  (PID: 764)
\SystemRoot\System32\smss.exe
    PageFaultCount             : 0x000000D6
    PeakWorkingSetSize         : 0x00082000
    WorkingSetSize (Mem usage) : 0x0006C000 (432 ko)
    QuotaPeakPagedPoolUsage    : 0x00006C34
    QuotaPagedPoolUsage        : 0x00001854
    QuotaPeakNonPagedPoolUsage : 0x000004D8
    QuotaNonPagedPoolUsage     : 0x00000280
    PagefileUsage              : 0x0002C000
    PeakPagefileUsage          : 0x00030000
--------------------

Process ID: 816
--------------------

Process ID: 844
winlogon.exe  (PID: 844)
\??\C:\WINDOWS\system32\winlogon.exe
    PageFaultCount             : 0x0000261D
    PeakWorkingSetSize         : 0x00B58000
    WorkingSetSize (Mem usage) : 0x0029B000 (2668 ko)
    QuotaPeakPagedPoolUsage    : 0x0001B054
    QuotaPagedPoolUsage        : 0x000185A4
    QuotaPeakNonPagedPoolUsage : 0x0000C988
    QuotaNonPagedPoolUsage     : 0x0000B6A0
    PagefileUsage              : 0x005EC000
    PeakPagefileUsage          : 0x006C6000
--------------------

...
    PeakPagefileUsage          : 0x03277000
--------------------

Process ID: 2712
lsproc.exe  (PID: 2712)
C:\Documents and Settings\LoginX\Bureau\lsproc.exe
    PageFaultCount             : 0x000000EC
    PeakWorkingSetSize         : 0x000F1000
    WorkingSetSize (Mem usage) : 0x000E4000 (912 ko)
    QuotaPeakPagedPoolUsage    : 0x000032B4
    QuotaPagedPoolUsage        : 0x000032B4
    QuotaPeakNonPagedPoolUsage : 0x00000400
    QuotaNonPagedPoolUsage     : 0x00000398
    PagefileUsage              : 0x00042000
    PeakPagefileUsage          : 0x0005C000
There are 131 drivers:
--------------------
   1: ntkrnlpa.exe
\WINDOWS\system32\ntkrnlpa.exe
--------------------
   2: hal.dll
\WINDOWS\system32\hal.dll
--------------------
   3: KDCOM.DLL
\WINDOWS\system32\KDCOM.DLL
--------------------
   4: BOOTVID.dll
\WINDOWS\system32\BOOTVID.dll


...


--------------------
 129: HTTP.sys
\SystemRoot\System32\Drivers\HTTP.sys
--------------------
 130: hiber_WMILIB.SYS
\SystemRoot\System32\Drivers\hiber_WMILIB.SYS
--------------------
 131: ntdll.dll
\WINDOWS\system32\ntdll.dll



--------------

answered Mar 25, 2011 at 18:47

Thierry BremardThierry Bremard

1

Using WMI and Powershell you can do:

Get-WMIObject -Class Win32_Process

Then you can filter properties using Select-Object and show in GUI using Out-GridView.

answered Sep 16, 2020 at 7:29

Wasif's user avatar

WasifWasif

8,0642 gold badges19 silver badges32 bronze badges

For more process info

running in cmd,handle is the process id:

wmic.exe path Win32_Process where handle='22792' get Commandline /format:list

result:

/path/to/app.exe [args specified goes here]

answered Jun 17, 2021 at 2:38

sammy's user avatar

sammysammy

1012 bronze badges

Hello if you want to list running process ID’s on a Windows machine then open a cmd screen and type:

netstat -aon | more

use the Enter key to scroll.

answered Aug 14, 2014 at 14:05

1

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

In Windows, we can get the list of processes running on the system from command prompt also. We can use ‘tasklist‘ command for this purpose.
Using this command we can selectively list the processes based on criteria like the memory space used, running time, image file name, services running in the process etc. Below you can find the syntax and examples for various cases.

Get the list of all the process running on the system

tasklist

Get the list of process using memory space greater than certain value.

tasklist /fi "memusage gt memorysize"

Memory size should be specified in KB
For example, to get the list of processes occupying more than 30MB of memory, we can run the below command.

tasklist /fi "memusage gt 30000"

Find the list of processes launched by a user

tasklist /fi "username eq userName"

Find the memory usage of a specific process

tasklist /fi "pid eq processId"

Example:

c:\>tasklist /fi "pid eq 6544"
Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
WmiPrvSE.exe                  6544 Services                   0      8,936 K

Find the list of not responding processes

tasklist /fi "status eq not responding"

example:

c:\>tasklist /fi "status eq not responding"
Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
rundll32.exe                  3916 Console                    1      7,028 K

Get the list of services running in a process

tasklist /svc /fi "pid eq processId"

Example:

c:\>tasklist /svc /fi "pid eq 624"
Image Name                     PID Services
========================= ======== ============================================
lsass.exe                      624 EFS, KeyIso, Netlogon, ProtectedStorage,
                                   SamSs, VaultSvc
c:\>

Get list of processes running for more than certain time

tasklist /fi "cputime gt hh:mm:ss"

example:
Get the list of processes that have been running from more than an hour and 20 minutes.

c:\>tasklist /fi "cputime gt 01:20:00"
Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
SynTPEnh.exe                  4152 Console                    1      8,080 K
firefox.exe                   1740 Console                    1    857,536 K
c:\>

Find processes that are running a specified image file:

tasklist /fi "imagename eq imageName"

Example:

c:\>tasklist /fi "imagename eq firefox.exe"
Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
firefox.exe                   1740 Console                    1    812,160 K
c:\>

Find the process running a specific service

tasklist /fi "services eq serviceName"

example:

c:\>tasklist /fi "services eq webclient"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
svchost.exe                   1052 Services                   0     20,204 K
c:\>

Related Posts:
How to kill a process from windows command line.

Бывают ситуации, когда нужно посмотреть/завершить запущенные процессы из командной строки. Это бывает нужно если вы управляете компьютером удаленно из командной строки, либо если компьютер сильно загружен, и очень много времени уходит на запуск диспетчера задач. Еще бывает такое, что через диспетчер задач процесс не завершается.  В этих случаях вам может помочь способ просмотра и завершения задач из командной строки, о чем я и расскажу ниже.
Для того что бы посмотреть запущенные процессы, существует утилита командной строки – tasklist, пример результата ее выполнения ниже на скриншоте. Из нее нам нужно запомнить имя процесса или PID, если несколько процессов запущенны с одним именем.

Для того что бы завершить задачу, можно воспользоваться утилитой taskkill, я его обычно использую с ключами /f /pid или /f /im, где после ключ /pid  нужно указать ID процесса, после /im его имя
Например завершим все запущенные процессы google chrome, для этого нужно набрать команду:

taskkill /f /im chrome*


Что бы завершить один процесс internet explorer нужно набрать:

taskkill /f /pid 5192

Видео по теме

2 0

Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.


Если вам помогла статья, вы можете >>отблагодарить автора<<


В статье описывается несколько способов, которые помогут отобразить список запущенных процессов в Windows. Операции производятся в Windows 10, но что-то сработает и в более ранних версиях.
Вы поймёте, что задача отобразить список запущенных процессов далеко не самая сложная. Однако подходы к её решению не обязательно должны быть стандартными. Информацию по процессам можно представить и в более комфортном виде, чем, например, через…

Диспетчер задач

Чаще всего, кроме этого способа, пользователям больше ничего и не известно. Но, раз уж это так, значит, этого большинству из нас достаточно. Вызывается оный во всех последних версиях Windows просто — достаточно зажать три клавиши быстрого доступа:

Ctrl + Shift + Esc

Вкладка с процессами не изменилась со времён Windows XP:

список запущенных процессов из диспетчера задач windows 10

Разглядывая процесс из Диспетчера, его легко обнаружить. Разверните дерево и щёлкните по любому из списка (если несколько):

где лежит исполнительный файл процесса

7-8 из 10, что вы направитесь в папку System32. Там системные процессы и живут. И, наоборот, процесс, маскирующийся под Windows-ный, но располагающийся в другой папке (тем более какой-нибудь *Temp), под что-то маскируется. И лучше к нему присмотреться. Вам в помощь контекстное меню исполнительного файла (тела процесса). Чем больше вы выудите информации в связке Свойства — Цифровые подписи — Сведения, тем для вас лучше.

что за процесс

Но кому-то и Диспетчера мало.

Список запущенных процессов из командной строки

В Windows есть встроенная командная утилита tasklist, отображающая список запущенных процессов на указанном компьютере. Как и многие другие в папке System32, tasklist принадлежит к числу административных утилит, которые могут смотреть запущенные процессы на удалённых машинах по сети. Для локального компьютера команда в консоли, запущенной от имени администратора, может, например, принять такой вид:

tasklist > %userprofile%\Desktop\Процессы.txt

После этого на Рабочем столе появится текстовый файл:

список запущенных процессов из консоли cmd

в котором запущенные на момент исполнения команды будут представлены в удобочитаемом виде. Текстовый вывод не понимает кириллицы, так что я обычно использую специальные текстовые редакторы типа Notepad ++. Но, думаю, что в файле написано, понятно и так:

список процессов в текстовом файле

Или процессы можно представить в табличном формате; если есть Excel, можете просматривать процессы оттуда:

tasklist /v /fi "sessionname eq console" /fo csv > %userprofile%\Desktop\Процессы.csv

Для удалённого компьютера команда примет вид:

tasklist /s Имя-компьютера > %userprofile%\Desktop\Имя-компьютера-processes.txt

На этом можно было бы и закончить, но я продолжу аналогичным вариантом, откуда вы узнаете…

Как узнать список запущенных процессов из Power Shell

Информация из файла, получаемого аналогичным путём, будет немного более информативнее. Этот вариант доступен владельцам копий Windows 7/10, и командлет на отображение списка на том же Рабочем столе будет таким:

Get-Process | Out-File $env:userprofile\Desktop\Процессы.txt

список процессов из powershell

для локальной копии Windows:

Get-Process -ComputerName Имя-компьютера | Out-File $env:userprofile\Desktop\Процессы.txt
  • Handles — число потоков, которые процесс открыл для себя.
  • NPM(K) — размер невыгружаемого пула памяти, использующегося процессом, в килобайтах.
  • PM(K) — размер выгружаемого пула памяти, использующегося процессом, в килобайтах.
  • WS(K) — размер рабочего набора процесса, в килобайтах. Он состоит из страниц памяти, к которым процесс обращался в текущем сеансе.
  • VM(M) — объём оперативной памяти, занимаемой процессом, в мегабайтах (в том числе в pafefile).
  • CPU(s) —  время в секундах, затрачиваемое всеми камнями процессора.
  • ID — PID указанного процесса.
  • ProcessName — Имя процесса.

Успехов нам всем.

  • Windows страница может быть на английском языке
  • Windows поменять код продукта windows
  • Windows сменить пароль пользователя в консоли
  • Windows получить время с сервера
  • Windows смена темы по времени