Главная»Железо»Как проверить список запущенных процессов в Windows
Как проверить список запущенных процессов в Windows
Команда TASKLIST — отобразить список задач на локальном или удаленном компьютере
Позволяет выдать полный перечень приложений и служб с кодом (PID) для абсолютно всех реализуемых данным устройством задач. Допускается применение команды на локальном или удаленном компьютере.
В Windows есть встроенная командная утилита tasklist, отображающая список запущенных процессов на указанном компьютере. Как и многие другие в папке System32, tasklist принадлежит к числу административных утилит, которые могут смотреть запущенные процессы на удалённых машинах по сети. Для локального компьютера команда в консоли, запущенной от имени администратора, может, например, принять такой вид:
После этого на Рабочем столе появится текстовый файл:
в котором запущенные на момент исполнения команды будут представлены в удобочитаемом виде. Текстовый вывод не понимает кириллицы, так что я обычно использую специальные текстовые редакторы типа Notepad ++. Но, думаю, что в файле написано, понятно и так:
Или процессы можно представить в табличном формате; если есть Excel, можете просматривать процессы оттуда:
Для удалённого компьютера команда примет вид:
На этом можно было бы и закончить, но я продолжу аналогичным вариантом, откуда вы узнаете…
Dragokas
Very kind Developer
№ (код) сеанса — 0, 1 .
имя сессии — Console / Services
Об этом нам неплохо поясняет Казакевич Олег. Приведу его цитату о запуске служб в интерактивном режиме: __________________ Если вкратце, суть вот в чем — службы выполняются в нулевой сессии. На системах до Vista в этой же сессии выполняются процессы первого залогиненного пользователя. Но такое соседство могло бы компрометировать безопасность, поэтому инженеры из Microsoft сделали так, что службы в нулевой сессии работают в отдельной, неинтерактивной оконной станции, изолированной от оконной станции пользователя и его рабочих столов.
А для тех, кому «ну очень надо» показать какой-нибудь диалог, сделали флажок «разрешить взаимодействие с рабочим столом» в настройках службы. Когда этот флажок установлен, служба и процессы пользователя выполняются в одной и той же оконной станции и служба может отображать оконные сообщения и выполнять другие интерактивные операции. Понятно, что это работает только в для первого залогиненного пользователя, в сессии 0, так как процессы других пользователей выполняются в сессиях 1, 2 и так далее.
С выходом Windows Vista этому беспределу справедливо решили положить конец и сделали более красиво — службам отдали нулевую сессию, а процессам пользователей сессии 1, 2, 3 и т.д. Теперь флаг «разрешить взаимодействие с рабочим столом» потерял смысл, так как служба из сессии 0 никак не может что-то показать на рабочем столе сессии 1. Но для старых приложений, которые еще не успели адаптироваться к новому режиму, был сделан временный костыль под названием «обнаружение интерактивных служб». Теперь при попытке службы, сконфигурированной с этим флагом, показать какое-нибудь окошко, система выдает пользователю сообщение и перекидывает его на отдельный десктоп, где и показывает сообщение службы. __________________
Чтобы увидеть 0-ую сесию в «Диспетчере задач» для ОС >= Vista, следует нажать кнопку «Отображать процессы всех пользователей».
Что нужно для PsExec
Для работы PsExec на удалённом компьютере не требуется никакого программного обеспечения — то есть на компьютере, которым вы будете управлять, не нужно устанавливать никакую клиентскую часть. Но нужно соблюдение некоторых условий, чтобы PsExec работала, поэтому если первая попытка не удалась, то проверьте следующие требования.
1. На обеих машинах, т.е. удалённом компьютере (которым будем управлять) и локальном компьютере (с которого будем управлять), должен быть включён общий доступ к файлам и принтерам. Для их включения смотрите статью «SMB: настройка общей сетевой папки в Windows».
2. В современных Windows 10 у меня PsExec работала только с учётной записью «Администратор», видимой по той причине, что необходимы административные общие ресурсы (подробнее о них смотрите в статье «Как включить административные общие ресурсы в ОС Windows 10, 8 или 7 (C$, D$, $admin и другие)»).
На серверах Windows учётная запись «Администратор» включена по умолчанию.
В более старых версиях Windows, видимо, достаточно включения общего сетевого ресурса $admin для предоставления доступа к папке Windows. В Windows 10 папки $admin как сетевого ресурса нет вовсе.
3. Проверьте, что сетевой доступ к файлам и принтерам включён в файерволе. Для этого нажмите Win+r, введите там firewall.cpl.
Во вкладке «Разрешение взаимодействия с приложениями или компонентами в брандауэре защитника Windows»
найдите «Общий доступ к файлам и принтерам» и убедитесь, что стоит галочка в столбце «Частная» — если его там нет, то нажмите кнопку «Изменить параметры», поставьте галочку и нажмите ОК.
4. Убедитесь, что оба компьютера принадлежат к одной и той же рабочей группе (Workgroup).
5. Убедитесь, что вы правильно вводите пароль администратора удалённого компьютера.
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):
.mainWindowTitle — процессы с графическими окнами» width=»» />.mainWindowTitle — процессы с графическими окнами» width=»» />
С помощью параметра IncludeUserName можно вывести имя пользователя (владельца), который запустил процесс:
Get-Process -Name winword -IncludeUserName
С помощью Where-Object можно выбрать процессы в соответствии с заданными критериями. Например, выведем все процессы, которые используются более 200 Мб оперативной памяти, отсортируем процессы в порядке убывания используемого объема RAM, размер памяти из Кб преобразуем в Мб:
Как мы уже говорили ранее командлет Get-Process в параметре CPU содержит время использования процессора конкретным процессом в секундах. Чтобы отобразить процент использования CPU процессами (по аналогии с Task Manager), используйте такую функцию:
С помощью параметра WindowStyle вы можете задать режим запуска окна процесса (normal, minimized, maximized, hidden). Например, чтобы запустить программу в максимально развернуом окне и дождаться завершения процесса, выполните команду:
С помощью командлета 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 | Stop-Process
.StartTime).TotalSeconds [Math]::Round( (
PowerShell: управление процессами на удаленном компьютере
С помощью аргумента ComputerName командлет Get-Process позволяет управлять процессами на удаленных компьютерах (должен быть включен и настроен WinRM).
Мы рассматриваем встроенные возможности комнадлета Get-Process для управления процессами на удаленных компьютерах. Здесь не учитываются возможности PowerShell Remoting, которые доступны в командлетах Invoke-Command и Enter-PSSession.
Если вы хотите завершить процесс на удаленном компьютере, имейте в виду, что у командлета Stop-Process отсутствует параметр –ComputerName. Для завершения процесса на удаленном компьютере можно использовать такой PowerShell код:
Чтобы найти зависшие процессы (которые не отвечают), выполните команду:
[/H1toH2]
Список запущенных процессов из командной строки
В Windows есть встроенная командная утилита tasklist, отображающая список запущенных процессов на указанном компьютере. Как и многие другие в папке System32, tasklist принадлежит к числу административных утилит, которые могут смотреть запущенные процессы на удалённых машинах по сети. Для локального компьютера команда в консоли, запущенной от имени администратора, может, например, принять такой вид:
После этого на Рабочем столе появится текстовый файл:
в котором запущенные на момент исполнения команды будут представлены в удобочитаемом виде. Текстовый вывод не понимает кириллицы, так что я обычно использую специальные текстовые редакторы типа Notepad ++. Но, думаю, что в файле написано, понятно и так:
Или процессы можно представить в табличном формате; если есть Excel, можете просматривать процессы оттуда:
Для удалённого компьютера команда примет вид:
На этом можно было бы и закончить, но я продолжу аналогичным вариантом, откуда вы узнаете…
Диспетчер задач
Чаще всего, кроме этого способа, пользователям больше ничего и не известно. Но, раз уж это так, значит, этого большинству из нас достаточно. Вызывается оный во всех последних версиях Windows просто – достаточно зажать три клавиши быстрого доступа:
Ctrl + Shift + Esc
Вкладка с процессами не изменилась со времён Windows XP:
Однако, если вы на К76, вам Диспетчера мало. Согласен, продолжаем.
Маленькие, но полезные инструменты
Список не был бы полным без упоминания нескольких вариантов аппаратного мониторинга.
59. IPMIutil
60. Glint Computer Activity Monitor
61. RealTemp
Утилита для мониторинга температур процессоров Intel, она не требует инсталляции, отслеживает текущие, минимальные и максимальные значения температур для каждого ядра и старт троттлинга.
62. SpeedFan
Утилита, которая позволяет контролировать температуру и скорости вращения вентиляторов в системе, следит за показателями датчиков материнской платы, видеокарты и жестких дисков.