Способов управлять процессами в 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 можно посмотреть, введя команду с ключом /?
И еще, все манипуляции с процессами необходимо выполнять с правами администратора, для этого командную строку требуется запускать с повышением привилегий.
В статье описывается несколько способов, которые помогут отобразить список запущенных процессов в Windows. Операции производятся в Windows 10, но что-то сработает и в более ранних версиях.
Вы поймёте, что задача отобразить список запущенных процессов далеко не самая сложная. Однако подходы к её решению не обязательно должны быть стандартными. Информацию по процессам можно представить и в более комфортном виде, чем, например, через…
Диспетчер задач
Чаще всего, кроме этого способа, пользователям больше ничего и не известно. Но, раз уж это так, значит, этого большинству из нас достаточно. Вызывается оный во всех последних версиях Windows просто — достаточно зажать три клавиши быстрого доступа:
Ctrl + Shift + Esc
Вкладка с процессами не изменилась со времён Windows XP:
Разглядывая процесс из Диспетчера, его легко обнаружить. Разверните дерево и щёлкните по любому из списка (если несколько):
7-8 из 10, что вы направитесь в папку System32. Там системные процессы и живут. И, наоборот, процесс, маскирующийся под Windows-ный, но располагающийся в другой папке (тем более какой-нибудь *Temp), под что-то маскируется. И лучше к нему присмотреться. Вам в помощь контекстное меню исполнительного файла (тела процесса). Чем больше вы выудите информации в связке Свойства — Цифровые подписи — Сведения, тем для вас лучше.
Но кому-то и Диспетчера мало.
Список запущенных процессов из командной строки
В Windows есть встроенная командная утилита tasklist, отображающая список запущенных процессов на указанном компьютере. Как и многие другие в папке System32, tasklist принадлежит к числу административных утилит, которые могут смотреть запущенные процессы на удалённых машинах по сети. Для локального компьютера команда в консоли, запущенной от имени администратора, может, например, принять такой вид:
tasklist > %userprofile%\Desktop\Процессы.txt
После этого на Рабочем столе появится текстовый файл:
в котором запущенные на момент исполнения команды будут представлены в удобочитаемом виде. Текстовый вывод не понимает кириллицы, так что я обычно использую специальные текстовые редакторы типа 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
для локальной копии 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 — Имя процесса.
Успехов нам всем.
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
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)
answered Sep 10, 2008 at 5:52
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
user4197user4197
5674 silver badges10 bronze badges
2
-
Tasklist
-
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
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
1
To kill a process use:
TASKKILL /F /IM processname.exe
For example:
TASKKILL /F /IM firefox.exe
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
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
Use this command to see all the processes in windows machine
tasklist /svc
answered Sep 5, 2014 at 7:30
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
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
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
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
.
Not the answer you’re looking for? Browse other questions tagged
.
All processes in Windows can be listed on the command-line prompt (CMD) using the tasklist
command.
The tasklist
command in Windows is the Linux ps
command equivalent.
In this note i am showing how to list all processes on the command-line prompt (CMD) in Windows using the tasklist
command, how to sort the process list and how to find a specific process by name.
Cool Tip: List services in Windows from the CMD & PowerShell! Read more →
Get the list of all running processes in Windows:
C:\> tasklist
Sort the list of processes by name:
C:\> tasklist /NH | sort
Option | Description |
---|---|
/NH |
Hide column names (header) from result set output |
Filter the list of processes by a process name (case insensitive):
C:\> tasklist /NH | findstr /I myProcess
Cool Tip: Kill a hanging process in Windows from the CMD! Read more →
Was it useful? Share this post with the world!
Бывают ситуации, когда нужно посмотреть/завершить запущенные процессы из командной строки. Это бывает нужно если вы управляете компьютером удаленно из командной строки, либо если компьютер сильно загружен, и очень много времени уходит на запуск диспетчера задач. Еще бывает такое, что через диспетчер задач процесс не завершается. В этих случаях вам может помочь способ просмотра и завершения задач из командной строки, о чем я и расскажу ниже.
Для того что бы посмотреть запущенные процессы, существует утилита командной строки – tasklist, пример результата ее выполнения ниже на скриншоте. Из нее нам нужно запомнить имя процесса или PID, если несколько процессов запущенны с одним именем.
Для того что бы завершить задачу, можно воспользоваться утилитой taskkill, я его обычно использую с ключами /f /pid или /f /im, где после ключ /pid нужно указать ID процесса, после /im его имя
Например завершим все запущенные процессы google chrome, для этого нужно набрать команду:
taskkill /f /im chrome*
Что бы завершить один процесс internet explorer нужно набрать:
taskkill /f /pid 5192
Видео по теме
2 0
Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.
Если вам помогла статья, вы можете >>отблагодарить автора<<