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

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

Способов управлять процессами в 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

спросил

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

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

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

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

  • windows
  • процесс
  • cmd.exe

0

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

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

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

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

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

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

3

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

Теперь мы можем использовать команду PowerShell для достижения этой цели:

Get-CimInstance Win32_Process -Filter "name LIKE '%OmniSharp.exe%'" | Выберите ProcessId, CommandLine | список форматов

или

Get-CimInstance -Query "SELECT * FROM Win32_Process WHERE name LIKE '%OmniSharp.exe%'" | Выберите ProcessId, CommandLine | format-table -wrap

Вы не видите командную строку в диспетчере задач. Однако вы можете использовать стороннюю программу диспетчера задач, например Process Explorer или Process Hacker, для просмотра командной строки.

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

3

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

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

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

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

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

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

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

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

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

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

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

Показать путь к EXE-файлу запущенных процессов в командной строке Windows

спросил

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

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

Как показать полный путь к EXE-файлу каждого запущенного процесса из командной строки в Windows?

Я попробовал список задач и список pslist, но они не показывают полный путь:

 список задач /FI "ImageName eq Spring. Tests.exe" /v /fo List
 

Дает:

 Имя изображения: Spring.Tests.exe
ПИД-код: 3956
Имя сеанса: Консоль
Сессия №: 1
Использование памяти: 9 772 КБ
Статус: Работает
Имя пользователя: W81ENTX64DELPHI\Разработчик
Процессорное время: 0:00:01
Название окна: Весна
 

и

 pslist Spring.Tests -x
 

дает:

 Имя Pid VM WS Priv Priv Pk Неисправности NonP Страница
Весна.Испытания 3956 83472 9772 5320 5692 5037 11 157
 Tid Pri Cswtch Состояние пользователя Время ядра Истекшее время
1488 10 11018 Ожидание:UserReq 0:00:00.906 0:00:01.046 0:53:06.977
 

Поскольку Spring.Tests.exe может находиться в разных каталогах, я хочу знать, какой из них был выполнен.

  • окна

8

В дополнение к строке, которую вы дали, вот несколько строк, которые (помимо второй) можно использовать для перечисления путей:

 PS C:\> gwmi win32_process | выберите Ручка, Командная строка | список форматов
PS C:\> gwmi win32_process | выберите имя
PS C:\> gwmi win32_process | выберите командную строку
C:\>процесс wmic получает ProcessID,ExecutablePath
C:\>процесс wmic, где "name='mysqld. exe'" получает ProcessID, ExecutablePath
C:\>процесс wmic, где "name='mysqld.exe'" получить ProcessID, ExecutablePath/FORMAT:LIST
 

3

PowerShell вам на помощь. 9| Путь к списку форматов

результат:

 Путь: C:\Users\Developer\Versioned\Spring4D\Tests\Bin\DelphiXE\Spring.Tests.exe
 

, это именно та информация, которую я хотел.

6

Конвейер PowerShell Get-Process в Select-Object .

Пример команды для Notepad++:

 Get-Process notepad++ | Путь к выбранному объекту
 

Выход:

 Путь
----
D:\Notepad++\notepad++.exe
 

2

Общее решение. Чтобы получить путь и другую информацию о процессе, вы должны запустить:

 $ Get-Process <опции> | Select-Object <параметры>
 

Пример:

 Get-Process-Id 2728 | Select-Object -Property ProcessName, Id, WS, Path
 

Выходы:

Пример:

 Get-Process svchost | Select-Object -Property ProcessName, Id, WS, Path
 

Выходы:

SelectObject

Get-Process

1

Я запускаю файл abc.