Управление процессами из командной строки

Способов управлять процессами в 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 существует много разных утилит и приложений. Как правило, для этих целей командная строка используется очень редко. Но в некоторых случаях, это единственная возможность и другие средства недоступны. Такое может возникнуть при блокировке стандартных диспетчеров различными вирусами и другими, нехорошими программами. Поэтому, будет очень полезно знать и уметь работать с процессами через командную строку.

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

Благодаря этому мы узнаем о том, кто запустил процесс, как сильно он грузит систему, где располагается его файл и еще кучу разной, полезной и не очень информации.

Чтобы остановить процесс через PowerShell используйте специальный командой 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

Завершить любой процесс можно при помощи утилиты Pskill. Введите эту команду и идентификатор процесса, или его имя. На рисунке ниже можете посмотреть, как это будет выглядеть в случае с бедным блокнотом.

Дополнительную информацию, в виде справки, можно открыть дополнительным параметром /?

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

отобразить список задач на локальном или удаленном компьютере.

Команда TASKLIST используется для получения списка процессов, выполняющихся на локальном или удаленном компьютере в данный момент времени.

Формат командной строки:


TASKLIST [/S  [/U  [/P []]]]
         [/M [] | /SVC | /V] [/FI ] [/FO ] [/NH]

Список параметров:


   /S             Подключаемый удаленный компьютер. 

   /U     [\]
                           Пользовательский контекст, в котором
                           должна выполняться эта команда.

   /P     []       Пароль для этого пользовательского контекста.
                           Запрашивает ввод пароля, если он не задан.

   /M     []       Отображение всех задач, которые используют данное
                           имя exe/dll. Если имя модуля не
                           указано, то отображаются все загруженные модули.

/SVC
Отображение служб для каждого процесса. /V Ведение подробного протоколирования. /FI Отображение списка задач, которые отвечают указанному в фильтре критерию. /FO Описание формата выходного файла. Допустимые значения: "TABLE", "LIST", "CSV".
/NH Отключение отображения заголовка "Column Header" в выходных данных. Допустимо для форматов "TABLE" и "CSV". /? Вывод справки по использованию. Фильтры: Имя фильтра Допустимые операторы Допустимые значения ----------- --------------- -------------------------- STATUS eq, ne RUNNING | NOT RESPONDING | UNKNOWN IMAGENAME eq, ne Имя образа PID eq, ne, gt, lt, ge, le Значение PID SESSION eq, ne, gt, lt, ge, le Номер сессии SESSIONNAME eq, ne Имя сессии CPUTIME eq, ne, gt, lt, ge, le Время CPU в формате hh:mm:ss. hh - часы, mm - минуты, ss - секунды MEMUSAGE eq, ne, gt, lt, ge, le Использование памяти в KБ USERNAME eq, ne Имя пользователя в формате [\] SERVICES eq, ne Имя службы WINDOWTITLE eq, ne Название окна MODULES eq, ne Имя DLL Примечание: Фильтры "WINDOWTITLE" и "STATUS" не поддерживаются при опросе удаленного компьютера. Примеры: TASKLIST TASKLIST /M TASKLIST /V /FO CSV TASKLIST /SVC /FO LIST TASKLIST /M wbem* TASKLIST /S /FO LIST TASKLIST /S /U \ /FO CSV /NH TASKLIST /S /U /P /FO TABLE /NH TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"

tasklist /? — выдать краткую справку по использованию команды.

tasklist — отобразить на экране консоли список процессов выполняющихся на локальном компьютере в данный момент времени. Пример отображаемой информации


Имя образа                     PID Имя сессии          № сеанса       Память
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0        16 КБ
System                           4 Services                   0       244 КБ
smss.exe                       316 Services                   0       812 КБ
csrss.exe                      432 Services                   0     3 192 КБ
wininit.exe                    468 Services                   0     3 688 КБ
. . . 
firefox.exe                   3268 Console                    1   104 252 КБ
cmd.exe                       2940 Console                    1     2 636 КБ
tasklist.exe                  2084 Console                    1     4 756 КБ
.  . . 
explorer.exe                2536 RDP-Tcp#1               1    17 336 КБ

Имя образа — имя исполняемого файла данного процесса. System Idle Process — это не имя образа, а индикация режима простоя, когда ни один из процессов не выполняется.

PID — уникальный идентификатор процесса. Присваивается процессу при его создании.

Имя сессии — имя сессии отображает признак Services — процесс запущен в качестве системной службы, Console — интерактивный пользовательский процесс, RDP-Tcp#n — процесс, созданный удаленным подключением по RDP ( клиентами служб терминалов) — .

№ сеанса — номер сеанса пользователя.

Память — объем используемой процессом памяти.

tasklist /FO LIST — то же, что и в предыдущем примере, но выводимые данные представлены в виде списка:


Имя образа:     System Idle Process
PID:            0
Имя сессии:     Services
№ сеанса:       0
Память:         16 КБ

Имя образа:     System
PID:            4
Имя сессии:     Services
№ сеанса:       0
Память:         244 КБ

tasklist /FO CSV — отобразить список процессов в формате полей, разделяемых запятой:


"Имя образа","PID","Имя сессии","№ сеанса","Память"
"System Idle Process","0","Services","0","16 КБ"
"System","4","Services","0","244 КБ"
"smss. exe","316","Services","0","812 КБ"
"csrss.exe","432","Services","0","3 192 КБ"

tasklist /fo csv /nh — то же, что и в предыдущем примере, но строка заголовка с названием колонок не отображается ( 1-я строка ).

tasklist -S SERVER — отобразить список процессов выполняющихся на удаленном компьютере SERVER в данный момент времени.

tasklist /m wsock32.dll — отобразить список процессов, которые подгружают библиотеку wsock32.dll. Пример отображаемых результатов выполнения команды:


Имя образа                     PID Модули                                      
========================= ======== ============================================
AvastSvc.exe                  1456 WSOCK32.dll                                 
AvastUI.exe                   2252 WSOCK32.dll                                 
firefox.exe                   3268 WSOCK32.dll                                 

tasklist /m — если имя модуля не задано, то отображается весь список процессов, и по каждому процессу — весь список модулей. Пример результата выполнения команды:


Имя образа                     PID Модули                                      
========================= ======== ============================================
System Idle Process              0 Н/Д                                         
System                           4 Н/Д                                         
smss.exe                       316 ntdll.dll                                   
csrss.exe                      432 ntdll.dll, CSRSRV.dll, basesrv.DLL,         
                                   winsrv.DLL, USER32.dll, GDI32.dll,          
                                   kernel32.dll, KERNELBASE.dll, LPK.dll,      
                                   USP10.dll, msvcrt.dll, sxssrv.DLL, sxs.dll, 
                                   RPCRT4.dll, CRYPTBASE.dll                   

tasklist /SVC — отобразить информацию о системных службах. Пример:


Имя образа                     PID Службы                                      
========================= ======== ============================================
System Idle Process              0 Н/Д                                         
System                           4 Н/Д                                         
smss. exe                       316 Н/Д                                         
csrss.exe                      432 Н/Д                                         
wininit.exe                    468 Н/Д                                         
csrss.exe                      488 Н/Д                                         
services.exe                   536 Н/Д                                         
lsass.exe                      556 KeyIso, SamSs                               
lsm.exe                        564 Н/Д                                         
winlogon.exe                   616 Н/Д                                         
svchost.exe                    708 DcomLaunch, PlugPlay, Power                 
svchost.exe                    804 RpcEptMapper, RpcSs                         
svchost.exe                    868 Audiosrv, Dhcp, lmhosts                     
svchost.exe                    960 AudioEndpointBuilder, CscService, Netman,   
                                   PcaSvc, SysMain, TrkWks, UmRdpService,      
                                   UxSms, Wlansvc, wudfsvc                     
svchost. exe                    988 Appinfo, BITS, CertPropSvc, EapHost, gpsvc, 
                                   IKEEXT, iphlpsvc, LanmanServer, ProfSvc,    
                                   Schedule, SENS, SessionEnv,                 
                                   ShellHWDetection, Themes, Winmgmt           

В колонке Службы отображается короткое имя службы, например, DcomLaunch — для Службы Терминалов

tasklist -s 192.168.0.1 -U mydomain\admin -P mypass /FI «memusage gt 10000» — отобразить список процессов, использующих более 10000кб ( 10 Мб) памяти на компьютере с IP-адресом 192.168.0.1 . При подключении к удаленному компьютеру используется имя пользователя admin в домене mydomain и пароль mypass

tasklist /fi «username ne NT AUTHORITY\Система» | more — отобразить список процессов, выполняющихся не от имени локальной системной учетной записи. Для некоторых версий Windows, вместо русского Система нужно использовать System . Команда объединена в цепочку с more для организации постраничного вывода на экран.

tasklist -s 192.168.0.110 -U mydomain\admin -P mypass /FI «sessionname eq RDP*» — отобразить список процессов на удаленном компьютере, созданных клиентами служб терминалов.

Кроме получения чисто справочной информации о выполняющихся в системе процессах, команда TASKLIST обычно используется как средство получения исходных данных для команды принудительного завершения процессов TASKKIll

Как вывести список всех процессов в командной строке Windows?

Существует ли команда, эквивалентная ‘ps’ в Unix, которая может вывести список всех процессов на компьютере с Windows?

  • окна
  • командная строка

1

Работа с cmd.exe:

список задач

Если у вас Powershell:

процесс получения

Через WMI:

wmic-процесс

(вы также можете запросить удаленные машины с помощью /node:ComputerOrIP , и есть НАМНОГО больше способов настроить эту команду: ссылка)

6

Существует инструмент командной строки инструментария управления Windows (wmic. exe).

Вы можете вызвать список процессов wmic , чтобы просмотреть все процессы.

5

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

2

  1. Список задач

  2. WMIC /OUTPUT: C:\ProcessList.txt ПРОЦЕСС получить заголовок, командную строку, идентификатор процесса

или

 WMIC /OUTPUT:C:\ProcessList.txt путь win32_process получить Caption,Processid,Commandline
 

Я пробовал в Windows 7. Команда: TASKLIST /FI "IMAGENAME eq application_name"

Например: c:\>TASKLIST /FI "IMAGENAME eq notepad.exe"

Показать весь процесс с портом детали:

 c:\>СПИСОК ЗАДАЧ
 

Также, чтобы убить процесс, вы можете использовать c:\> pskill или tskill имя процесса

Например: c:\> tskill notepad

3

список задач или pslist от sysinternals. Кроме того, get-process отлично работает с PowerShell.

Если вы используете Powershell, у него есть команда «ps» (псевдоним Get-Process)

1

Чтобы убить процесс, используйте:

 TASKKILL /F /IM имя_процесса.exe
 

Например:

 TASKKILL /F /IM firefox.exe
 

1

Если вы используете Windows XP, попробуйте использовать команду «список задач». Я попробовал это с Vista, и, похоже, это тоже работает.

открыть командную строку Windows

 C:\>tasklist // список всех задач
C:\>Taskkill /IM firefox.exe /F // Убить задачу по имени
 

или

 C:\>Taskkill /PID 26356 /F // убить задачу по PId
 

Используйте эту команду, чтобы увидеть все процессы в машине Windows

список задач /svc

4

У меня была следующая проблема в Windows 2003 SP2: список задач не возвращал вывод на стандартный вывод или стандартный вывод при вызове из процесса, запущенного как служба Windows (даже под локальной учетной записью). Список задач вернулся с (недокументированным) кодом 128.

Вызывается из той же программы, запущенной как обычный процесс (не как служба), она запустилась.

Нет помощи, чтобы изменить это. Я не мог найти никакой причины или решения, но вместо этого использовал «pslist/accepteula» sysinternal.

Та же проблема с taskkill: мне пришлось заменить его на pskill.

Я сделал msproject (исходный код c), архив доступен по адресу: Архив проекта lsproc.zip

и исполняемый файл: Двоичный файл lsproc.exe

это инструмент командной строки вывод:

 лспрок
Тьерри Бремар
[email protected]
перечислить бинарные файлы и драйвер с их локальным путем на дисках
большая часть кода получена с сайта msdn
--------------------
Идентификатор процесса: 0
--------------------
Идентификатор процесса: 4
<неизвестно> (PID: 4)
<неизвестно>
    PageFaultCount: 0x00002E4B
    Пикворкингсетсизе: 0x00419000
    WorkingSetSize (использование памяти): 0x0003A000 (232 ko)
    QuotaPeakPagedPoolUsage: 0x00000000
    QuotaPagedPoolUsage : 0x00000000
    QuotaPeakNonPagedPoolUsage: 0x00000000
    QuotaNonPagedPoolUsage: 0x00000000
    Использование файла страницы: 0x00000000
    Пикпажефилеусаге : 0x00000000
--------------------
Идентификатор процесса: 764
smss. exe (PID: 764)
\SystemRoot\System32\smss.exe
    PageFaultCount: 0x000000D6
    Пикворкингсетсизе: 0x00082000
    WorkingSetSize (использование памяти): 0x0006C000 (432 ko)
    QuotaPeakPagedPoolUsage: 0x00006C34
    Квотапажедпулусаге : 0x00001854
    QuotaPeakNonPagedPoolUsage: 0x000004D8
    QuotaNonPagedPoolUsage: 0x00000280
    Использование файла подкачки: 0x0002C000
    Пикпажефилеусаже: 0x00030000
--------------------
Идентификатор процесса: 816
--------------------
Идентификатор процесса: 844
winlogon.exe (PID: 844)
\??\C:\WINDOWS\system32\winlogon.exe
    PageFaultCount: 0x0000261D
    Пикворкингсетсизе: 0x00B58000
    WorkingSetSize (использование памяти): 0x0029B000 (2668 ко)
    QuotaPeakPagedPoolUsage: 0x0001B054
    QuotaPagedPoolUsage: 0x000185A4
    QuotaPeakNonPagedPoolUsage: 0x0000C988
    QuotaNonPagedPoolUsage: 0x0000B6A0
    Использование файла подкачки: 0x005EC000
    Пикпажефилеусаже: 0x006C6000
--------------------
...
    Пикпажефилеусаже: 0x03277000
--------------------
Идентификатор процесса: 2712
lsproc. exe (PID: 2712)
C:\Documents and Settings\LoginX\Bureau\lsproc.exe
    PageFaultCount: 0x000000EC
    Пикворкингсетсизе: 0x000F1000
    WorkingSetSize (использование памяти): 0x000E4000 (912 ко)
    QuotaPeakPagedPoolUsage: 0x000032B4
    Квотапажедпулусаге : 0x000032B4
    QuotaPeakNonPagedPoolUsage: 0x00000400
    QuotaNonPagedPoolUsage: 0x00000398
    Использование файла подкачки: 0x00042000
    Пикпажефилеусаге : 0x0005C000
131 водитель:
--------------------
   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
--------------
 

1

Используя WMI и Powershell, вы можете сделать:

 Get-WMIObject -Class Win32_Process
 

Затем вы можете фильтровать свойства с помощью Select-Object и отображать в графическом интерфейсе с помощью Out-GridView .

Для получения дополнительной информации о процессе

работает в cmd, дескриптор — это идентификатор процесса:

 путь wmic.exe Win32_Process, где дескриптор = '22792' получить командную строку / формат: список
 

результат:

 /path/to/app.exe [здесь указаны аргументы]
 

Здравствуйте, если вы хотите получить список идентификаторов запущенных процессов на компьютере с Windows, откройте экран cmd и введите:

 netstat -aon | более
 

используйте клавишу Enter для прокрутки.

1

Твой ответ

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

windows 7 — Как узнать аргументы командной строки запущенной программы?

Спросил

Изменено 2 года, 5 месяцев назад

Просмотрено 201k раз

Я ищу инструмент или метод, чтобы узнать, какие параметры командной строки были переданы программе, например, когда она была запущена другой программой (сценарий запуска-приложения).

  • windows-7
  • windows
  • аргументы командной строки

1

Это можно сделать с помощью Process Explorer.

Просто наведите указатель мыши на процесс, чтобы увидеть аргументы командной строки, используемые для его запуска:

Кроме того, вы можете открыть свойства процесса и проверить командную строку прямо там:

10

Вы можете сделать это и без Process Explorer, используя службу Windows WMI. Запустите из командной строки следующее:

 WMIC path win32_process get Caption, Processid, Commandline
 

Если вы хотите вывести вывод в файл (чтобы его было немного легче читать), используйте переключатель /OUTPUT:

 WMIC /OUTPUT:C:\Process.txt путь win32_process получить заголовок, идентификатор процесса, командную строку
 

9

Этого также можно добиться с помощью диспетчера задач .

Открыть диспетчер задач (с помощью CTRL-SHIFT-ESC, CTRL-ALT-DELETE или любым другим способом).

Для Windows 7 (и, возможно, Windows XP):

  • Перейдите на вкладку «Процессы». В меню «Вид» выберите «Выбрать столбцы…».
  • Установите флажок «Командная строка» и нажмите «ОК». (Возможно, вам придется прокрутить вниз, чтобы найти его)

Для Windows 8:

  • Перейдите на вкладку «Подробности». Щелкните правой кнопкой мыши любой из столбцов (например, имена, PID и т. д.) и выберите «Выбрать столбцы».
  • Установите флажок «Командная строка» и нажмите «ОК». (Возможно, вам придется прокрутить вниз, чтобы найти его)

Столбец Командных строк будет добавлен к отображаемым в данный момент столбцам.

11

PowerShell вам в помощь.

Найти:

 Get-WmiObject Win32_Process -Filter "name = 'perl.exe'" | где {$_.CommandLine -eq '"C:\strawberry\perl\bin\perl.exe" t/Server_PreFork.t'}
 

И убить в качестве бонуса:

 Get-WmiObject Win32_Process -Filter "name = 'perl.exe'" | где {$_.CommandLine -eq '"C:\strawberry\perl\bin\perl.exe" t/Server_PreFork.t'} | ForEach-Object {Invoke-WmiMethod -Path $_.__Path –Name Terminate}
 

Вы можете запустить его напрямую из powershell или с ps1, если у вас есть настройка системы. Я подробно описываю неограниченную настройку скрипта, я убиваю зомби с помощью powershell, а также другие трюки с powershell.. .

1

Предыдущие ответы хороши, если процесс уже запущен и не собирается завершаться в ближайшее время. Однако, если вам нужно (как и мне) сделать это, возможно, с процессами, запускаемыми несколько раз и / или быстро завершающимися, или, возможно, регистрирующими события в течение более длительного периода времени, есть способ сделать это с помощью Process Monitor .

По сути, он регистрирует различные события в системе, в этом случае мы можем просто отфильтровать событие «Запуск процесса» и имя процесса, который мы хотим отслеживать, как показано ниже:

Затем просто оставьте монитор процессов включенным и делайте все, что вы делаете, чтобы запустить процесс, который вы хотите зарегистрировать. Вы можете увидеть либо в столбце «Подробности», либо в столбце «Командная строка» (в зависимости от того, как вы их настроите) аргументы командной строки. Например:

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

Я знаю, что OP задал вопрос относительно Windows 7 , и есть несколько отличных ответов.

Я столкнулся с этой проблемой в windows 10 , и я не хотел использовать ProcessExplorer или какую-либо утилиту, а скорее простой способ получить аргументы командной строки процесса FFMPEG, который был инициирован инструментом преобразования видео. Но шаги применимы к любому процессу, который запускается с использованием аргументов командной строки.

Вот что я сделал.

  1. Запустить диспетчер задач >
  2. Идентифицировать процесс >
  3. Щелкните правой кнопкой мыши процесс и выберите «Перейти к сведениям о процессе»
  4. Щелкните правой кнопкой мыши любой столбец и выберите «Показать столбцы», а затем установите флажок «Аргументы командной строки» > Нажмите «ОК».
  5. Затем выберите процесс, для которого нужны аргументы командной строки, а затем используйте Ctrl+C, чтобы скопировать все данные для этого процесса (включая аргументы командной строки)

Вот скриншоты шагов.

Надеюсь, это кому-нибудь поможет. Best

При использовании CygWin , если я запускаю процесс Python , это пример командной строки:

 c:\CygWin\bin\python2.7.exe /usr/local/bin/sudoserver.py
 

Но Process Explorer видит только основной исполняемый файл:

(обратите внимание на «путь: [Сообщение об ошибке открытия процесса]» (см. EDIT-1)). Те же результаты для списка задач :

 C:\> список задач | найти "питон" / я
Консоль python2.7.exe 5740 1 15,312 КБ
 

Итак, единственный трюк, который я знаю до сих пор, это найти его через оболочку CygWin Bash pgrep :

 [email protected] /cygdrive/c/
$ pgrep -f -l сервер.py
5740 /usr/bin/python2.7 /usr/local/bin/sudoserver.py
 

Это полезно знать, пока CygWin без проблем сосуществует в Windows, и вы можете использовать его для запуска многих программ POSIX и Python.

РЕДАКТИРОВАТЬ: в Windows вам не нужны права администратора для списка задач. В CygWin они понадобятся вам, чтобы иметь возможность просматривать процесс администратора (что мне кажется более логичным: полная командная строка может иметь некоторые параметры, такие как пароли внутри), поэтому мы должны запустить CygWin Bash в режиме администратора с повышенными правами .

РЕДАКТИРОВАТЬ-1: Эта проблема не возникнет, если вы запустите Process Explorer от имени администратора. Спасибо за указание, @Pacerier.

2

перейти к запустить или перейти к запустить и выполнить поиск:

 список задач -m
список задач -svc
 

1

Твой ответ

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

3 способа вывести список запущенных процессов

ВПС

03 июня 2022 г.

Домантас Г.

4 минуты Чтение

Вам нужно просмотреть все запущенные процессы на вашем Linux-сервере и выяснить, какие из них больше всего потребляют ваши ресурсы? Не ищите дальше, потому что в этой статье мы объясним, как составить список процессов с помощью нескольких распространенных команд Linux.

Загрузить полную памятку по командам Linux

Введение в процессы Linux

Процесс — это выполнение программы. Их можно запустить при открытии приложения или при вводе команды через терминал командной строки. Однако приложение может запускать несколько процессов для разных задач. Например, Google Chrome будет запускать новый процесс каждый раз, когда открывается новая вкладка.

Процесс может быть инициирован как активный или фоновый процесс. Каждому процессу Linux присваивается уникальный PID (идентификационный номер процесса).

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

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

Чтобы получить список процессов в Linux, используйте одну из трех команд: ps, top или htop . Команда Ps предоставляет статический снимок всех процессов, а top и htop сортирует по загрузке ЦП.

Давайте углубимся в каждый из них.

Использование команды «ps»

Команда ps (состояния процессов) создает снимок всех запущенных процессов. Поэтому, в отличие от диспетчера задач Windows, результаты статичны.

Когда эта команда используется без каких-либо дополнительных аргументов или параметров, она возвращает список запущенных процессов вместе с четырьмя важными столбцами: PID , имя терминала ( TTY ), время работы ( TIME ) и имя команды, запускающей процесс ( CMD ). Вы можете использовать ps aux для получения более подробной информации о запущенных процессах. Вот разбивка каждого аргумента:

  • опция выводит все запущенные процессы всех пользователей в системе. 9Опция 0006
  • u предоставляет дополнительную информацию, такую ​​как процент использования памяти и ЦП, код состояния процесса и владельца процессов. Опция
  • x перечисляет все процессы, не выполняемые с терминала. Прекрасным примером этого являются демоны , которые представляют собой процессы, связанные с системой, которые запускаются в фоновом режиме при загрузке системы.

Если вы хотите вывести список процессов Linux в иерархическом виде, используйте команду ps -axjf . В этом формате оболочка помещает дочерние процессы в родительские процессы. Помимо этих двух опций, вот несколько других распространенных примеров команды ps, которые перечисляют запущенные процессы в Linux:

  • ps -u [имя пользователя] перечисляет все запущенные процессы определенного пользователя.
  • ps -e или ps -A отображает активные процессы Linux в общем формате UNIX.
  • ps -T выводит активные процессы, которые выполняются с терминала.
  • Ps -C имя_процесса отфильтрует список по имени процесса. Кроме того, эта команда также показывает все дочерние процессы указанного процесса.

Использование команды «сверху»

Команда top используется для обнаружения ресурсоемких процессов. Эта команда Linux отсортирует список по использованию ЦП, поэтому процесс, который потребляет больше всего ресурсов, будет помещен вверху. Также полезно проверить, запущен ли конкретный процесс.

В отличие от команды ps вывод команды top периодически обновляется. Это означает, что вы будете видеть обновления использования ЦП и времени работы в режиме реального времени. Как только оболочка вернет список, вы можете нажать следующие клавиши для взаимодействия с ним:

9
Ключи Функции
K Убивает процесс
MELICLES .
N Сортирует список по PID.
r Изменяет приоритет процесса.
h Отображает окно справки.
z Отображает запущенные процессы в цветах.
d Изменяет интервал времени обновления.
c Отображает абсолютный путь процесса.
CTRL+C; или; q Останавливает верхнюю команду.

Имейте в виду, что указанные выше клавиши чувствительны к регистру, поэтому убедитесь, что не включен режим Caps Lock.

Запуск команды «htop»

И команда htop, и команда top отображают одинаковую информацию при выводе списка процессов Linux, но первая предлагает удобные функции, которые отлично подходят для повседневного управления процессами.

Во-первых, команда htop позволяет вам прокручивать по вертикали и по горизонтали. Таким образом, вы можете увидеть полный список ваших процессов Linux вместе с их полными командными строками.

Более того, эта команда позволяет вам использовать мышь для выбора элементов, уничтожения процессов без вставки их PID, легкого изменения приоритета нескольких процессов и так далее.

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

Если вы используете Ubuntu, вы можете установить htop, выполнив следующую команду:

 sudo apt-get install htop 

После установки введите htop, и вы получите список всех ваших процессов Linux. Как и предыдущая команда, htop также имеет несколько сочетаний клавиш:

Клавиши Функции
F9 Завершить процесс
F8 Увеличение приоритета процесса.
F7 Понизить приоритет процесса.
F6 Сортировка процессов по любому столбцу.
F5 Отображение процессов в виде дерева.
F4 Фильтровать процессы по имени.
F3 Поиск процесса.
F2 Открыть настройку htop.
F1 Отображение меню справки.

Использование команды «поверх»

Команда поверх — это инструмент для мониторинга системных ресурсов в Linux. Это полноэкранная утилита производительности ASCII, которая регистрирует и сообщает об активности всех серверных процессов.

После запуска программа atop показывает использование ресурсов ЦП, памяти, подкачки, дисков и сети с 10-секундными интервалами. atop будет оставаться активным в фоновом режиме для долгосрочного анализа сервера (по умолчанию до 28 дней).

Среди преимуществ:

  • Подсчитывает использование ресурсов для всех процессов и пользователей с одинаковым именем.
  • Выделяет важные ресурсы цветом (красным).
  • Показывает использование ресурсов всеми процессами, включая завершенные или закрытые.
  • Отслеживает потоки внутри процессов (кроме неиспользуемых).
  • Использует ядро ​​ netatop для мониторинга TCP, UDP и пропускной способности сети.

Вы можете установить команду atop, выполнив любую из следующих команд:

Ubuntu/Debian

 Sudo Apt Установка ATP 

Centos/RHEL/Fedora

 Sudo DNF Установка на вершине 

. После установки. ресурсы системы.

Вот список доступных аргументов и их описания:

Команда Описание
человек на вершине Отображает страницу руководства по командам поверх.
поверх -l Отображает среднее общее значение в секунду.
поверх -a Отображает активные процессы за последние интервалы.
поверх -c Отображает командную строку для каждого процесса.
поверх -m Отображает информацию о памяти.
поверх -d Отображает информацию о диске.
поверх -n Отображает информацию о сети.
поверх -s Отображает сведения о расписании.
поверх -v Отображает различную информацию (например, PPID, пользователя или время).
поверх -y Отображает отдельные потоки.

После запуска atop нажмите перечисленные ниже сочетания клавиш, чтобы отсортировать процессы:

Ключи Функции
a Сортировка по наиболее активным ресурсам.
c Возврат к сортировке по потреблению ЦП (по умолчанию).
d Сортировка по активности диска.
m Сортировка в порядке использования памяти.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *