Windows определить процесс по pid
В продолжение рубрики «Основы», сегодня речь пойдет о процессах в Windows. Разберем что это такое, на что они влияют и с помощью чего их можно контролировать.
p, blockquote 1,0,0,0,0 —>
В операционной системе «процессом» является экземпляр компьютерной программы, которая запущенна в данный момент. Сама по себе программа является всего лишь набором правил и кода, тогда как процесс является фактическим выполнением всего этого. Задачи одной и той же программы могут выполняться в нескольких процессах и, естественно, каждому активному процессу требуется определенное количество системных ресурсов, и чем больше их одновременно запущенно, тем медленнее начинает работать компьютер.
p, blockquote 2,0,0,0,0 —>
Многих начинающих пользователей мало интересует, какие скрытые процессы у них работают, а между тем, есть смысл поинтересоваться, не работают ли какие-нибудь фоновые программы и сервисы, в которых нет необходимости и которые при этом впустую расходуют процессорное время и память. Но прежде чем отключать ненужные процессы, чтобы освободить ресурсы компьютера, необходимо научиться разбираться в них, чтобы случайно не затронуть, например, процессы относящиеся к системным, многие из которых запускаются во время старта компьютера и критически необходимы для функционирования операционной системы и других приложений.
p, blockquote 3,0,0,0,0 —>
Следует также упомянуть, что большинство вирусов для осложнения обнаружения маскируют себя под какой-либо из процессов. Именно по этим причинам важно уметь их опознавать и идентифицировать.
p, blockquote 4,0,0,0,0 —>
Для того чтобы увидеть весь список активных процессов необходимо открыть «Диспетчер задач» (Task Manager). Сделать это можно тремя распространенными способами:
p, blockquote 5,0,0,0,0 —>
— комбинация клавиш ctrl + alt + del
— комбинация клавиш ctrl +shift + esc
или
— правый клик мыши на панели задач — пункт «Диспетчер задач».
p, blockquote 6,0,0,0,0 —>
Находясь в окне диспетчера, выберите вкладку «Процессы».
p, blockquote 7,0,0,0,0 —>
p, blockquote 8,0,0,0,0 —>
В открывшемся окне находится несколько столбцов с помощью которых мы и сможем получить первую необходимую информацию о том, какие процессы загружены и сколько ресурсов они потребляют.
p, blockquote 9,0,0,0,0 —>
1. Имя образа — название процесса
2. Пользователь — от какой учетной записи запущен процесс
3. ЦП — показывает загрузку процессора в процентном соотношении
4. Память — выделенный объем оперативной памяти
5. Описание — краткое описание того какая программа, служба или сервис инициирует данный процесс.
p, blockquote 10,0,0,0,0 —>
В самом низу окна показывается суммарное количество активных процессов, общая загрузка процессора и оперативной памяти в процентах.
p, blockquote 11,0,1,0,0 —>
Чтобы отключить ненужный процесс, необходимо выбрать один из них и нажать кнопку «Завершить процесс». Однако простое «Завершение процесса» просто отключит его до следующей перезагрузки Windows. Поэтому, если вы хотите навсегда избавиться от него, необходимо отключить его запуск в самом приложении, которое запускает этот процесс, или отключить активирующую его службу, или убрать из автозагрузки, а может и вовсе удалить ненужное приложение.
p, blockquote 12,0,0,0,0 —>
Если для получения информации о процессе вам будет недостаточно стандартных столбцов, можно добавить дополнительные. Для этого в главном меню Диспетчера задач нажмите «Вид» и в открывшемся меню выберите пункт «Выбрать/Добавить столбцы».
p, blockquote 13,0,0,0,0 —>
p, blockquote 14,0,0,0,0 —>
Выставьте галочки напротив пунктов «ИД процесса (PID)» и «Путь к образу». Нажмите «Ок».
p, blockquote 15,0,0,0,0 —>
p, blockquote 16,0,0,0,0 —>
p, blockquote 17,0,0,0,0 —>
Теперь в столбце ««Путь к образу» вы можете видеть расположение файла, который инициирует запущенный процесс.
p, blockquote 18,0,0,0,0 —>
А информация столбца «ИД процесса (PID)» будет полезна, если вам понадобится узнать, например, какая служба запускает процесс «Svchost.exe».
p, blockquote 19,0,0,0,0 —>
Заглянув немного вперед, почему мы выбрали именно его в качестве примера. Это важный системный процесс и нужен для включения и управления различных служб. Путаница у многих пользователей с этим процессом возникает от того что одновременно могут быть запущены несколько его экземпляров, но все от разных служб. И для того чтобы понять, какая именно служба относится к отдельно взятому процессу «Svchost.exe», нам и понадобится его числовой идентификатор — PID. Запомнив число, указанное в этом столбце переходим в «Диспетчере Задач» на вкладку «Службы».
Находясь в этом окне, нажмите левой кнопкой мыщи по заголовку столбца «ИД процесса». Список отсортируется и вы без труда сможете найти процесс по PID, посмотрев его описание в соответствующем столбце.
p, blockquote 20,0,0,0,0 —>
p, blockquote 21,0,0,0,0 —>
Сведений в этом окне конечно очень мало, однако позволяет примерно понять, какая именно служба запустила «Svchost.exe». Мы уже упоминали этот процесс в статье «svchost.exe — вирус или нет?»
p, blockquote 22,0,0,0,0 —>
Еще одна возможность увидеть, где располагается файл инициирующий запуск процесса, это нажать правой кнопкой мыши на одном из них и выбрать пункт «Открыть место хранения файла».
p, blockquote 23,1,0,0,0 —>
p, blockquote 24,0,0,0,0 —>
Со временем вы научитесь легко опознавать любые процессы. Для того, чтобы немного облегчить вам эту задачу, ниже приводим список наиболее типичных программных и системных процессов, большинство из которых по умолчанию запускаются вместе с операционной системой.
p, blockquote 25,0,0,0,0 —>
alg.exe — системный процесс. служба, являющаяся одним из компонентов ОС Windows необходимая для доступа к Интеренету и работы Брандмауэра. Если завершить этот процесс то подключение к интернет оборвется до следующей перезагрузки Windows.
p, blockquote 26,0,0,0,0 —>
ati2evxx.exe — является одним из компонентов драйверов для видеокарт AMD/ATI. Осуществляет работу горячих клавиш. Из-за большой нагрузки на ЦП рекомендуется отключить этот процесс и соответствующую службу.
p, blockquote 27,0,0,0,0 —>
BTTray.exe — компонент драйвера Bluetooth от Widcomm. Необходим для их работы.
p, blockquote 28,0,0,0,0 —>
csrss.exe — системный процесс Windows, обеспечивающий работу компонента «клиент/сервер». Не может быть отключен. Наиболее сильно подвержен заражению вирусов.
p, blockquote 29,0,0,0,0 —>
ctfmon.exe — системный процесс, отвечающий за языковую панель, индикатор, отображающий текущую раскладку клавиатуры и обеспечивающий поддержку других альтернативных методов ввода. Отключение этого процесса есстевстенно не рекомендуется.
p, blockquote 30,0,0,0,0 —>
dwm.exe — системный процесс Windows. Интегрирован в систему, начиная с Windows Vista и 7. Отвечает за графические эфекты рабочего стола, окон и меню, а также нормальное функционирование интерфейса «Aero».
p, blockquote 31,0,0,0,0 —>
explorer.exe — критический необходимый системный процесс проводника Windows, отвечающий за отображение рабочего стола и меню, возможность осуществления навигации пользователя. Не стоит его отключать.
p, blockquote 32,0,0,0,0 —>
issch.exe – процесс, позволяющий выполнять проверку обновлений в фоновом режиме стандартного инсталлятора Windows и других программ.
p, blockquote 33,0,0,0,0 —>
jusched.exe – процесс планировщика для автоматической проверки обновлений Java компонентов . Отключить автоматический запуск этого процесса можно путем выключения автоматической проверки обновлений в настройках Java (Пуск-Панель управления-Java).
p, blockquote 34,0,0,1,0 —>
lsass.exe – необходимый системный процесс, отвечающий за работу локального сервера проверки подлинности, политику безопасности и авторизации пользователей. Взаимодействует с службой winlogon. Не может быть завершен.
p, blockquote 35,0,0,0,0 —>
lsm.exe – системный процесс, управляющий удаленными подключениями к локальной системе. Не нужно отключать.
p, blockquote 36,0,0,0,0 —>
rthdcpl.exe – Процесс, обеспечивающий работу контрольной панели Realtek HD Audio. Иконка для этой программы находится в трее, рядом с часами. Завершение этого процесса может вызвать проблемы работы звука на системе.
p, blockquote 37,0,0,0,0 —>
rundll32.exe — Необходимй системный процесс Windows запускаемый утилитой командной строки. Позволяет запускать функции и команды DLL — файлов.
p, blockquote 38,0,0,0,0 —>
services.exe — важный системный процесс, отвечающий за за управление всеми системными службами.
p, blockquote 39,0,0,0,0 —>
smss.exe — необходимый системный процесс, отвечающий за запуск пользовательского сеанса, а также запуск процессов Winlogon и Csrss.exe. Завершать работу этого процесса нельзя.
p, blockquote 40,0,0,0,0 —>
spoolsv.exe — системный процесс. Отвечает за функции печати (принтер, факс и тд.).
p, blockquote 41,0,0,0,0 —>
svchost.exe — один из главных системных процессов, отвечающий за работу целого ряда сервисов и служб. Одновременно может работать несколько его копий, т.к. каждая содержит различные службы.
p, blockquote 42,0,0,0,0 —>
wininit.exe — необходимый системный процесс WIndows. ВЫполняет в фоновом режиме поддержку работы некоторых наиболее важных системных служб и программ, а также отвечает за своевременный запуск элементов автозагрузки.
p, blockquote 43,0,0,0,0 —>
winlogon.exe — Критически важный системный процесс. Отвечает за вход и выход пользователей в систему. Не может быть завершен.
p, blockquote 44,0,0,0,0 —>
wmiprvse.exe — системный процесс, один из компонентов Инструментария управления Windows. Отключение не рекомендуется.
p, blockquote 45,0,0,0,0 —> p, blockquote 46,0,0,0,1 —>
PowerShell
(Добавьте -n, чтобы прекратить попытки разрешить имена хостов, что сделает его намного быстрее.)
Обратите внимание на рекомендацию датчанина для TCPView . Это выглядит очень полезно!
-a Отображает все соединения и порты прослушивания.
-b Отображает исполняемый файл, участвующий в создании каждого соединения или порта прослушивания. В некоторых случаях известные исполняемые файлы содержат несколько независимых компонентов, и в этих случаях отображается последовательность компонентов, участвующих в создании порта подключения или прослушивания. В этом случае имя исполняемого файла находится в [] внизу, вверху — компонент, который он вызвал, и так далее, пока не будет достигнут TCP / IP. Обратите внимание, что этот параметр может занять много времени и завершится ошибкой, если у вас нет достаточных разрешений.
-n Отображает адреса и номера портов в числовой форме.
-o Отображает идентификатор процесса-владельца, связанный с каждым соединением.
1948 плюса
Есть родной графический интерфейс для Windows:
- Пуск >> Все программы >> Стандартные >> Системные инструменты >> Монитор ресурсов
или Выполнить resmon.exe , или из вкладки производительности TaskManager
Автор: bcorso Размещён: 18.05.2014 05:02
211 плюса
Используйте TCPView, если вы хотите графический интерфейс для этого. Это старое приложение Sysinternals, которое Microsoft купила.
Автор: Dane Размещён: 07.09.2008 06:38
163 плюса
Автор: aku Размещён: 07.09.2008 06:32
100 плюса
Ключ -b, упомянутый в большинстве ответов, требует наличия прав администратора на компьютере. Вам не нужны повышенные права, чтобы получить имя процесса!
Найдите pid процесса, запущенного по номеру порта (например, 8080)
Найти имя процесса по pid
75 плюса
Вы можете получить больше информации, если выполните следующую команду:
Использование команды «Найти» позволяет фильтровать результаты. find / i «listening» будет отображать только порты «Listening». Обратите внимание, что вам нужно / i, чтобы игнорировать регистр, иначе вы наберете find «LISTENING». | find «port» ограничит результаты только теми, которые содержат определенный номер порта. Обратите внимание, что при этом он также будет фильтровать результаты, которые имеют номер порта в любом месте строки ответа.
67 плюса
Откройте окно командной строки (от имени администратора). В поле «Пуск \ Поиск» введите «cmd», затем щелкните правой кнопкой мыши «cmd.exe» и выберите «Запуск от имени администратора».
Введите следующий текст, затем нажмите Enter.
netstat -abno
-a Отображает все соединения и порты прослушивания.
-b Отображает исполняемый файл, участвующий в создании каждого соединения или порта прослушивания. В некоторых случаях известные исполняемые файлы содержат несколько независимых компонентов, и в этих случаях отображается последовательность компонентов, участвующих в создании порта подключения или прослушивания. В этом случае имя исполняемого файла находится в [] внизу, вверху — компонент, который он вызвал, и так далее, пока не будет достигнут TCP / IP. Обратите внимание, что этот параметр может занять много времени и завершится ошибкой, если у вас нет достаточных разрешений.
-n Отображает адреса и номера портов в числовой форме.
-o Отображает идентификатор процесса-владельца, связанный с каждым соединением.
Найдите порт, который вы слушаете, в разделе «Локальный адрес».
Посмотрите на имя процесса прямо под этим.
ПРИМЕЧАНИЕ. Чтобы найти процесс в диспетчере задач
Обратите внимание на PID (идентификатор процесса) рядом с портом, который вы просматриваете.
Откройте диспетчер задач Windows.
Выберите вкладку «Процессы».
Найдите PID, который вы указали, когда выполняли netstat на шаге 1.
Если вы не видите столбец PID, нажмите View / Select Columns. Выберите PID.
Убедитесь, что выбран параметр «Показывать процессы от всех пользователей».
49 плюса
Получить PID и имя изображения
Используйте только одну команду:
где 9000 следует заменить номер вашего порта.
Выход будет содержать что — то вроде этого:
Объяснение:
он перебирает каждую строку из выходных данных следующей команды:
из каждой строки %a извлекается PID ( имя здесь не важно) (PID является элементом 5 th в этой строке) и передается следующей команде
Если вы хотите , чтобы пропустить на заголовок и возвращение командной строки , вы можете использовать:
Выход:
42 плюса
Сначала мы находим идентификатор процесса той конкретной задачи, которую нам нужно устранить, чтобы освободить порт
введите
netstat -n -a -o
После выполнения этой команды в командной строке Windows (CMD) выберите PID, который я думаю, что последний столбец предполагает, что это 3312
Taskkill / F / PID 3312
Теперь вы можете перепроверить, набрав команду netstat.
ПРИМЕЧАНИЕ: иногда Windows не позволяет вам запускать эту команду непосредственно на CMD, поэтому сначала вам нужно выполнить эти шаги из start-> командной строки (щелкните правой кнопкой мыши на командной строке и запустите от имени администратора)
24 плюса
Чтобы получить список всех идентификаторов процессов-владельцев, связанных с каждым соединением:
Если вы хотите уничтожить какой-либо процесс, используйте идентификатор и используйте эту команду, чтобы порт стал свободным
23 плюса
Получить номер порта из pid в Windows очень просто.
Ниже приведены шаги:
1) Перейти к запуску -> введите CMD -> нажмите Enter.
2) написать следующую команду .
(Примечание: не используйте квадратные скобки.)
4) Затем cmd сообщит вам подробности службы, работающей на этом порту, вместе с pid.
5) Откройте диспетчер задач и перейдите на вкладку службы и сопоставьте pid с этим из cmd и все.
17 плюса
Просто откройте командную оболочку и введите: (скажем, ваш порт 123456)
Вы увидите все, что вам нужно
это как упомянуто здесь
14 плюса
Если вы хотите использовать инструмент с графическим интерфейсом, для этого есть SysInternals TCPView .
13 плюса
В PowerShell 5 в Windows 10 или Windows Server 2016 запустите Get-NetTCPConnection командлет. Я думаю, что это также должно работать на старых версиях Windows.
Вывод по умолчанию Get-NetTCPConnection не включает идентификатор процесса по некоторым причинам, и это немного сбивает с толку. Однако вы всегда можете получить его, отформатировав вывод. Собственность, которую вы ищете, есть OwningProcess .
Если вы хотите узнать идентификатор процесса, который прослушивает порт 443, выполните эту команду:
Отформатируйте вывод в таблицу со свойствами, которые вы ищете:
Если вы хотите узнать имя процесса, выполните эту команду:
12 плюса
Чтобы узнать, какой конкретный процесс (PID) использует какой порт:
Где 1234 — PID вашего процесса. [Перейдите в диспетчер задач -> вкладка «Службы / процессы», чтобы узнать PID вашего приложения]
11 плюса
Введите в команду: netstat -aon | findstr :DESIRED_PORT_NUMBER
Например, если я хочу найти порт 80: netstat -aon | findstr :80
Этот ответ был первоначально размещен в этой теме .
10 плюса
netstat -ao и netstat -ab сообщит вам приложение, но если вы не являетесь администратором, вы получите «Запрошенная операция требует повышения прав».
Это не идеально, но если вы используете sysinternals Process Explorer, вы можете перейти к свойствам определенных процессов и посмотреть на вкладку TCP, чтобы увидеть, используют ли они интересующий вас порт. это кому-то поможет .
10 плюса
- -a отображает все порты подключения и прослушивания
- -b отображает исполняемые файлы
- -n stop разрешить имена хостов (числовая форма)
-в владении процессом
netstat -bano | findstr «7002»
netstat -ano> ano.txt
Инструмент Currports помогает искать и фильтровать
8 плюса
Я рекомендую CurrPorts от NirSoft.
CurrPorts может фильтровать отображаемые результаты. TCPView не имеет этой функции.
Примечание. Вы можете щелкнуть правой кнопкой мыши соединение сокета процесса и выбрать «Закрыть выбранные TCP-соединения» (вы также можете сделать это в TCPView). Это часто устраняет проблемы с подключением к Outlook и Lync после переключения VPN. С помощью CurrPorts вы также можете закрывать соединения из командной строки с помощью параметра «/ close».
Автор: Josh Размещён: 29.06.2015 10:07
6 плюса
Используйте следующие инструменты: — Из cmd : — C:\> netstat -anob с правами администратора .
Все от sysinternals.com
Если вы просто хотите узнать, какой процесс запущен и какие потоки находятся под каждым процессом, я рекомендую вам узнать об этом wmic . Замечательный инструмент cmd line, который дает вам гораздо больше, чем вы можете себе представить.
Приведенная выше команда будет показывать весь список процессов каждые 5 секунд. Чтобы узнать больше, вы можете просто пойти с /? командой Windows, например,
и так далее и тому подобное. 🙂
6 плюса
netstat -a -o Показывает PID процесса, запущенного на конкретном порту.
Запомните идентификатор процесса и перейдите на вкладку «Диспетчер задач» и «Службы» или «Сведения» и завершите процесс с тем же PID.
Таким образом, вы можете убить процесс, запущенный на конкретном порту в Windows.
Автор: nisha Размещён: 13.08.2013 02:32
6 плюса
Для тех, кто использует Powershell, попробуйте Get-NetworkStatistics :
5 плюса
Используя Powershell .
. это будет ваш друг (замените 8080 на номер вашего порта):
Образец вывода
Таким образом, в этом примере tnslsnr.exe (база данных OracleXE) прослушивает порт 8080.
Быстрое объяснение
Select-String используется для фильтрации длинных выводов netstat соответствующих строк.
-Pattern проверяет каждую строку на соответствие регулярному выражению
-Context 0,1 будет выводить 0 ведущих строк и 1 завершающую строку для каждого совпадения паттерна.
Автор: Jpsy Размещён: 28.12.2017 09:06
5 плюса
Программно вам нужен материал из iphlpapi.h , например GetTcpTable2 (). Структуры, подобные MIB_TCP6ROW2, содержат PID владельца.
5 плюса
Это единственное решение, которое мне помогает, просто замените 3000 своим портом
$P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess; kill $P.Id
5 плюса
Откройте command prompt — start » run » cmd or start » All Programs » Accessories » Command Prompt .
netstat -aon | findstr ‘[port_number]’
Замените [номер_порта] фактическим номером порта, который вы хотите проверить, и нажмите Enter.
- Если порт используется каким-либо приложением, то будут показаны подробности этого приложения. Номер, который показан в последнем столбце списка, представляет собой PID (идентификатор процесса) этого приложения. Запишите это.
tasklist | findstr ‘[PID]’
Замените [PID] числом из вышеприведенного шага и нажмите ввод.
- Вам будет показано имя приложения, которое использует номер вашего порта.
Автор: Anatole ABE Размещён: 09.05.2019 12:18
2 плюса
Для Windows, если вы хотите найти материал, прослушивающий или подключенный к порту 1234, выполните следующую команду в командной строке:
1 плюс
Используйте ниже пакетный скрипт, который принимает имя процесса в качестве аргумента и выдает вывод netstat для процесса.