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

Способов управлять процессами в 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 можно посмотреть, введя команду с ключом /?

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

Мониторинг процессов в командной строке

Мониторинг процессов в командной строке

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

Управление приложениями, процессами и производительностью

Всякий раз, когда операционная система или пользователь запускает службу, приложение или команду, Microsoft Windows запускает один или более процессов для управления соответствующей программой. Несколько утилит командной строки упростят вам мониторинг программ и управление ими. К этим утилитам относятся:

  • Pmon (Process Resource Manager) — показывает статистические данные по производительности, включая использование памяти и процессора, а также список всех процессов, выполняемых в локальной системе. Позволяет получать детальные «снимки» задействованных ресурсов и выполняемых процессов. Pmon поставляется с Windows Resource Kit;
  • Tasklist (Task List) — перечисляет все выполняемые процессы по имени и идентификатору процесса, сообщает информацию о сеансе пользователя и занимаемой памяти;
  • Taskkill (Task Kill) — останавливает выполнение процесса, заданного по имени или идентификатору. С помощью фильтров можно останавливать процессы в зависимости от их состояния, номера сеанса, процессорного времени, занимаемой памяти, имени пользователя и других параметров.

Примеры управления процессами через командную строку

Анализ выполняемых процессов в командной строке

При помощи утилиты командной строки Tasklist можно проверить процессы, работающие в локальной или удаленной системе. Tasklist позволяет:

  • получить идентификатор процесса, его состояние и другие важные сведения о процессах в системе;
  • увидеть зависимости между выполняемыми процессами и службами, настроенными в системе;
  • просмотреть список DLL, задействованных выполняемыми в системе процессами;
  • использовать фильтры для включения или исключения процессов, показываемых Tasklist.

Пример: tasklist — команда выводит список запущенных в операционной системе процессов.

Мониторинг процессов и использования системных ресурсов

Process Resource Monitor (Pmon) показывает «моментальный снимок» используемых системных ресурсов и выполняемых процессов. После запуска (вводом pmon в командной строке) эта утилита собирает информацию об использовании ресурсов и выполняемых процессах в локальной системе и выводит результаты в консольное окно. Статистика автоматически обновляется каждые пять секунд. Pmon продолжает работу, пока вы не нажмете клавишу Q для выхода; нажатие любой другой клавиши приводит к обновлению информации.

Останов процессов в командной строке

Чтобы остановить процессы в локальной или удаленной системе, применяйте утилиту командной строки Taskkill. Процесс можно остановить по его идентификатору при помощи параметра /Pid или по имени образа

Пример: taskkill /IM notepad. exe — завершает работу программы блокнот.

Системные и пользовательские процессы

Обычно процесс, запускаемый операционной системой, называется системным, а процесс, запускаемый пользователем, — пользовательским. Большинство пользовательских процессов выполняется в интерактивном режиме. То есть пользователь запускает процесс непосредственно при помощи клавиатуры или мыши. Если программа активна, связанный с ней интерактивный процесс контролирует клавиатуру и мышь до тех нор, пока вы не переключите управление, завершив эту программу или выбрав другую. Процесс, получивший контроль над клавиатурой и мышью, называют активным.

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


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

спросил

Изменено 10 месяцев назад

Просмотрено 1,1 млн раз

Существует ли команда, эквивалентная ‘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 получить заголовок, идентификатор процесса, командную строку
 

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

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

Чтобы показать весь процесс с информацией о порте:

 c:\> TASKLIST
 

Также, чтобы убить процесс, вы можете использовать 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 --------------
(adsbygoogle = window.adsbygoogle || []).push({});

1

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

 Get-WMIObject -Class Win32_Process
 

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

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

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

 путь wmic.exe Win32_Process, где дескриптор = '22792' get Commandline /format:list
 

результат:

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

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

 netstat -aon | более
 

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

1

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

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

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

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

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

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

Требуется, но никогда не отображается

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

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

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

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

. 9Процесс 0000 — Как показать полную командную строку всех процессов в Windows

спросил

Изменено 1 год, 4 месяца назад

Просмотрено 67 тысяч раз

В Windows в диспетчере задач можно увидеть командную строку каждого процесса, но она усечена.

Как просмотреть полную командную строку каждого запущенного процесса?

  • окна
  • процесс
  • cmd.exe

0

В cmd выполните следующее:

 wmic процесс получить идентификатор процесса, командная строка
 

Для фильтрации конкретной программы:

 процесс wmic, где "имя типа "% chrome%"" получить идентификатор процесса, командная строка
 

Другие свойства, которые вы можете запросить для процессов:

  • Заголовок
  • Командная строка
  • имя класса создания
  • Дата создания
  • CSCreationClassName
  • CSName
  • Описание
  • Исполняемый путь
  • состояние выполнения
  • Ручка
  • HandleCount
  • Дата установки
  • Кернеломодетиме
  • Максимумворкингсетсизе
  • Минимальный размер рабочего набора
  • Имя
  • OSCreationClassName
  • имя_ОС
  • Другихоператионкаунт
  • ПрочееПереводКоунт
  • Ошибка страницы
  • Пейджфилеусаже
  • идентификатор родительского процесса
  • Пикпажефилеусаже
  • Пиквиртуалсайз
  • ПикВоркингсетСизе
  • Приоритет
  • Частная страницакаунт
  • идентификатор процесса
  • Квотанонпажедпулусаже
  • Квотапажедпулусаже
  • QuotaPeakNonPagedPoolUsage
  • Квотапикпажедпулусаже
  • ReadOperationCount
  • ReadTransferCount
  • идентификатор сеанса
  • Статус
  • Дата окончания
  • Число потоков
  • UserModeTime
  • Виртуальный размер
  • Версия Windows
  • Размер рабочего набора
  • WriteOperationCount
  • WriteTransferCount

3

Средство WMIC устарело в Windows 10 версии 21h2 и полугодовом выпуске канала 21h2 Windows Server.