Как посмотреть список процессов в Windows на удаленном компьютере
Бывает так, что нам нужно посмотреть, запущена та или иная программа на удаленном компьютере. Просто и быстро. Без стороннего софта. Ну или по каким-то другим причинам посмотреть запущенные процессы.
Если говорить о локальном компьютере, то абсолютное большинство использует для мониторинга процессов Windows Диспетчер задач. Но вот в случае с удаленным компьютером он нам не помощник. Рассмотрим очень простой способ.
Активные пользователи командной строки Windows знают о существовании такой замечательной команды, как tasklist . Команда делает именно то, о чем можно было подумать, т.е. выводит список процессов. Может она это сделать и для удаленного компьютера. Синтаксис команды таков:
tasklist [/S имя_удаленного_компьютера [/U имя_пользователя [/P пароль]]] [/M модуль | /SVC | /V] [/FI фильтр] [/FO формат] [/NH]
/S — необходимо указать имя удаленного компьютера, если подключаемся к такому. Для локального компьютера не указывается;
/U — имя пользователя, от которого будут просматриваться процессы. Пользователь должен быть администратором;
/P — пароль от указанной учетной записи пользователя, если пароль не указан, будет выполнен запрос на ввод пароля;
/M — отображение всех процессов, которые используют указанное имя. Если не задано, будут отображаться все процессы;
/SVC — отображение служб для каждого процесса;
/V — ведение подробного протоколирования;
/FI — отображение процессов, которые соответствуют указанному фильтру;
/FO — формат файла для экспорта, допустимы значение TABLE , LIST и CSV ;
/NH — отключение отображение заголовка в выводим данных, доступно для форматов TABLE и CSV .
Таким образом, если нам просто нужно посмотреть список запущенных процессов на локальном компьютере, то достаточно просто набрать

Пример вывода команды tasklist.
Если же мы хотим посмотреть процессы на удаленном компьютере (например, с именем Test-PC), то команда должна выглядеть следующим образом:
Кроме этого момента, вынесенного в заголовок статьи, разберем другие примеры использования команды tasklist . Что, если мы не хотим просматривать все процессы, а только начинающиеся с win? Тогда мы можем использовать фильтр:

Использование фильтров в команде tasklist.
Со стороны написанное может казаться непонятным. Поэтому разберем синтаксис составления фильтров в команде tasklist .
Начнем с того, что фильтр заключается в кавычки. Далее идёт очень простая схема:
[имя_фильтра] [оператор] [значение]
Есть ограниченное число имён фильтров, операторов и значений. Они в таблице ниже.
| Имя фильтра | Допустимые операторы | Допустимые значения | Описание |
| STATUS | eq, ne | RUNNING, SUSPENDED, NOT RESPONDING, UNKNOWN | Статус процесса |
| IMAGENAME | eq, ne | Имя (часть имени) процесса(-ов) | Подходящие по наименованию процессы |
| PID | eq, ne, gt, lt, ge, le | Значение PID | Идентификатор процесса |
| SESSION | eq, ne, gt, lt, ge, le | Номер сеанса | Номер сеанса в Windows |
| SESSIONNAME | eq, ne | Имя сеанса | Имя сеанса в Windows |
| CPUTIME | eq, ne, gt, lt, ge, le | Время ЦП в формате чч:мм:сс (часы:минуты:секунды) | Время обработки задачи |
| MEMUSAGE | eq, ne, gt, lt, ge, le | Используемая ОЗУ (в КБ) | Размер используемой задачей оперативной памяти |
| USERNAME | eq, ne | Имя пользователя | Пользователь, из-под которого запущен процесс |
| SERVICES | eq, ne | Имя службы | Используемые службы |
| WINDOWTITLE | eq, ne | Заголовок окна | Заголовок окна процесса |
| MODULES | eq, ne | Имя dll (динамически подключаемой библиотеки) | Используемые библиотеки |
Отметим, что для удаленных компьютеров не действуют фильтры «WINDOWTITLE» и «STATUS».
Используемые операторы сравнения означают следующее:
eq — равно;
ne — не равно;
gt — больше;
lt — меньше;
ge — больше или равно;
le — меньше или равно.
Синтаксис фильтров является, пожалуй, самой сложной частью. Все следующие примеры проще. Тот же просмотр служб, относящихся к задачам, вызывается следующей командой:

Просмотр используемых служб в команде tasklist.
Если мы хотим вывести информацию в файл, то нужно использовать параметр /FO. Конечно же, у вас должны быть права на запись в каталог, куда вы хотите поместить файл с выводимой информацией. Команда
выведет информацию в формате .csv в файл primer.csv, который находится на диске C.
Что, если нам надо посмотреть какие процессы используют определенную dll-библиотеку? Например, библиотеку cfgmgr32.dll. Это можно сделать командой

Получилось несколько больше, чем просто статья о просмотре процессов на другом компьютере. Это потому, что я считаю, что, заводя речь о какой-то команде, надо давать более-менее подробное описание её сути. Конечно, в данной статье приведены не все примеры и не все нюансы команды tasklist . Их можно изучить самостоятельно.
Управление процессами с помощью PowerShell
27.07.2021
itpro
PowerShell, Windows 10, Windows Server 2016
комментариев 7
PowerShell предоставляет широкие возможности управления процессами на локальном или удаленном компьютере. С помощью PowerShell можно получить список запущенных процессов, приостановить зависший процесс, найти процесс по заголовку окна, запустить новый процесс в скрытом или интерактивном режиме.
Список доступных командлетов управления процессами в Windows 10 можно вывести так:
Get-Command –Noun Process

- Get-Process – получить список запущенных процессов;
- Start-Process – запустить процесс/программу;
- Stop-Process – принудительно остановить процесс;
- Debug-Process – используется для отладки процессов;
- Wait-Process – используется для ожидания окончания процесса.
Get-Process – получение списка запущенных процессов
Командлет Get-Process позволяет вывести список запущенных процессов на локальном компьютере.

По-умолчанию выводятся следующие свойства запущенных процессов:
- Handles – количество дескрипторов ввода — вывода, которые отрыл данный процесс;
- NPM(K) — Non-paged memory (невыгружаемый пул). Размер данных процесса (в Кб.), которые никогда не попадают в файл подкачки на диск;
- PM(K) – размер памяти процесса, которая может быть выгружена на диск;
- WS(K) – размер физической памяти в Кб, используемой процессом (working set).
- CPU(s) – процессорное время, использованное процессом (учитывается время на всех CPU);
- ID — идентификатор процесса;
- SI (Session ID) – идентификатор сеанса процесса (0 — запущен для всех сессий, 1 – для первого залогиненого пользователя, 2 — для второго и т.д.);
- ProcessName – имя процесса.
Чтобы получить все свойства нескольких процессов:
Get-Process winword, notep* | Format-List *
Можно вывести только определенный свойства процессов. Например, имя (ProcessName) время запуска (StartTime), заголовок окна процесса (MainWindowTitle), имя исполняемого файла (Path) и наименование разработчика (Company):
Get-Process winword, notep* | Select-Object ProcessName, StartTime, MainWindowTitle, Path, Company|ft

Вывести список запущенных процессов пользователя с графическими окнами (в список не попадут фоновые и системные процессы):
Get-Process | Where-Object <$_.mainWindowTitle>| Format-Table Id, Name, mainWindowtitle

.mainWindowTitle — процессы с графическими окнами» width=»» />.mainWindowTitle — процессы с графическими окнами» width=»» />
С помощью параметра IncludeUserName можно вывести имя пользователя (владельца), который запустил процесс:
Get-Process -Name winword -IncludeUserName
С помощью Where-Object можно выбрать процессы в соответствии с заданными критериями. Например, выведем все процессы, которые используются более 200 Мб оперативной памяти, отсортируем процессы в порядке убывания используемого объема RAM, размер памяти из Кб преобразуем в Мб:

Как мы уже говорили ранее командлет Get-Process в параметре CPU содержит время использования процессора конкретным процессом в секундах. Чтобы отобразить процент использования CPU процессами (по аналогии с Task Manager), используйте такую функцию:
function Get-CPUPercent
<
$CPUPercent = @<
Name = ‘CPUPercent’
Expression = <
$TotalSec = (New-TimeSpan -Start $_.StartTime).TotalSeconds
[Math]::Round( ($_.CPU * 100 / $TotalSec), 2)
>
>
Get-Process | Select-Object -Property Name, $CPUPercent, Description | Sort-Object -Property CPUPercent -Descending | Select-Object -First 20
>

Чтобы найти зависшие процессы (которые не отвечают), выполните команду:
Start-Process, Stop-Process: запуск и остановка процессов из PowerShell
Чтобы запустить новый процесс с помощью PowerShell используется команда:
Start-Process -FilePath notepad
Если каталог с исполняемым файлом отсутствует в переменной окружения $env:path, нужно указать полный путь к файлу:
Start-Process -FilePath ‘C:\distr\app.exe’
Можно запустить программу и передать ей аргументы:
Start-Process -FilePath ping -ArgumentList «-n 10 192.168.1.11»
С помощью параметра WindowStyle вы можете задать режим запуска окна процесса (normal, minimized, maximized, hidden). Например, чтобы запустить программу в максимально развернуом окне и дождаться завершения процесса, выполните команду:
Start-Process -FilePath tracert -ArgumentList «192.168.1.11» –wait -windowstyle Maximized
С помощью командлета Stop-Process можно завершить любой процесс. Например, чтобы закрыть все запущенные процессы notepad:
Stop-Process -Name notepad
По-умолчанию не запрашивается подтверждение завершения процесса. Закрываются все процессы, которые соответствуют указанным критериям. Чтобы запросить подтверждение завершения для каждого процесса, добавьте –Confirm.
Stop-Process -Name notepad.exe -Confirm

(Get-Process -Name notepad).Kill()
Из PowerShell можно принудительно завершить все приложения, которые не отвечают диспетчеру процессов Windows:
Get-Process | where-object <$_.Responding -eq $false>| Stop-Process
PowerShell: управление процессами на удаленном компьютере
С помощью аргумента ComputerName командлет Get-Process позволяет управлять процессами на удаленных компьютерах (должен быть включен и настроен WinRM).
Get-Process -ComputerName dc01, dc02| Format-Table -Property ProcessName, ID, MachineName
Если вы хотите завершить процесс на удаленном компьютере, имейте в виду, что у командлета Stop-Process отсутствует параметр –ComputerName. Для завершения процесса на удаленном компьютере можно использовать такой PowerShell код:
$RProc = Get-Process -Name notepad -ComputerName dc01
Stop-Process -InputObject $RProc
Предыдущая статья Следующая статья
Как управлять процессами на удаленном компьютере?
Иногда возникает вопрос как посмотреть какие процессы запущены на удаленном компьютере пользователя (и завершить процесс на удаленном компьютере) но при этом не ставить ни какое доп ПО и вообще что бы это было быстро и желательно из консоли ) На этот случай «мелкософт» позаботился о сисадминах и дал там волшебную команду tasklist (о всех ее функция можете посмотреть в командной строке tasklist /?)
Но перейдем к делу, а точнее к пошаговой инструкции по пользованию этой удобной утилиты!
- Для начала откроем командную строку Пуск-cmd
- Вводим команду tasklist /s winxp-test
tasklist — команда по выводу удаленных процессов
/s — ключ который говорит что будет подключать удаленный компьютер
winxp-test — имя компьютера на котором нужно вывести процессы
- теперь зная имя процесса и его PID мы его принудительно завершим, для примера я взял процесс uTorrent с номер процесса 2720
- Далее запускаем другую команду taskkill /s winxp-test /pid 2720

- Все, радуемся жизни не поднимаю пятую точку со стула )
PS Данная утилиты очень полезна когда требуется быстро решить проблему не тревожа пользователя выяснить что не так на его компе или найти «плохую редиску» в офисе которая запускает ненужно ПО на своем компе.

доп ключи : просмотр процессов на удаленном компьютере, список процессов на удаленном компьютере, процессы замедляющие работу компьютера, завершить процесс на удаленном компьютере, как посмотреть процессы на компьютере.
Как управлять процессами на удаленном компьютере?
Иногда возникает вопрос как посмотреть какие процессы запущены на удаленном компьютере пользователя (и завершить процесс на удаленном компьютере) но при этом не ставить ни какое доп ПО и вообще что бы это было быстро и желательно из консоли ) На этот случай “мелкософт” позаботился о сисадминах и дал там волшебную команду tasklist (о всех ее функция можете посмотреть в командной строке tasklist /?)
Но перейдем к делу, а точнее к пошаговой инструкции по пользованию этой удобной утилиты!
- Для начала откроем командную строку Пуск-cmd
- Вводим команду tasklist /s winxp-test
tasklist – команда по выводу удаленных процессов
/s – ключ который говорит что будет подключать удаленный компьютер
winxp-test – имя компьютера на котором нужно вывести процессы
- теперь зная имя процесса и его PID мы его принудительно завершим, для примера я взял процесс uTorrent с номер процесса 2720
- Далее запускаем другую команду taskkill /s winxp-test /pid 2720

- Все, радуемся жизни не поднимаю пятую точку со стула )
PS Данная утилиты очень полезна когда требуется быстро решить проблему не тревожа пользователя выяснить что не так на его компе или найти “плохую редиску” в офисе которая запускает ненужно ПО на своем компе.
доп ключи : просмотр процессов на удаленном компьютере, список процессов на удаленном компьютере, процессы замедляющие работу компьютера, завершить процесс на удаленном компьютере, как посмотреть процессы на компьютере.