Вы можете узнать PID (идентификатор процесса) с помощью Диспетчера задач или командной строки.
Как узнать PID c помощью Диспетчера задач
Как узнать PID c помощью командной строки
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Каждый запущенный процесс в Windows имеет свой числовой идентификатор — PID или ИД процесса, который может использоваться для обращения к конкретному процессу, например, для получения информации о нём или принудительного закрытия.
В этой инструкции несколько способов узнать PID процесса в Windows 11 или Windows 10, большинство из которых подойдут и для предыдущих версий системы.
ИД процесса в диспетчере задач
Быстрый и простой способ посмотреть PID процесса в графическом интерфейсе — использовать диспетчер задач Windows, для этого:
- Откройте диспетчер задач: вы можете использовать контекстное меню кнопки «Пуск», нажать клавиши Ctrl+Shift+Esc или использовать меню Ctrl+Alt+Delete для этого.
- В диспетчере задач переключитесь на вкладку «Сведения» (в Windows 11, переключение выполняется в меню) или «Подробности» (в Windows 10).
- Обратите внимание на столбец «ИД процесса» — это и есть нужный PID. Если столбец не отображается, нажмите по заголовку таблицы с процессами правой кнопкой мыши и используйте пункт «Выбрать столбцы», чтобы включить показ нужного столбца.
Для большинства пользователей этого метода будет достаточно для получения нужной информации.
Однако, если узнать PID запущенного процесса требуется при выполнении какого-либо пользовательского скрипта, могут пригодиться описанные в последней части инструкции методы его получения без использования графического интерфейса — в командной строке или PowerShell.
PID процесса в Мониторе ресурсов
Ещё один метод, очень похожий на предыдущий — использование встроенного инструмента «Монитор ресурсов»:
- Нажмите клавиши Win+R на клавиатуре, либо нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить».
- Введите resmon в диалоговое окно «Выполнить» и нажмите Enter.
- Откроется окно «Монитор ресурсов» в нем, на вкладке «Обзор» вы увидите список процессов, распределенных по группам (использование ЦП, Диска, Сети и Памяти) с указанием их ИД в соответствующем столбце.
Process Explorer
Process Explorer — «продвинутый» диспетчер задач из Microsoft Sysinternals, скачать его можно как в комплекте с другими утилитами, так и отдельно с официального сайта.
После запуска утилиты, информацию о PID процесса вы сможете найти в одноименном столбце.
Командная строка
Получить PID процесса можно с помощью команд командной строки. Шаги будут следующими:
- Запустите командную строку, лучше — от имени администратора (как это сделать).
- Чтобы получить список всех процессов, включая информацию об их PID, введите команду
tasklist
и нажмите Enter.
- Для отображения только процессов с заданными именами файлов (в имени допустимы wildcard-символы, например, *) можно использовать следующую команду:
tasklist /FI "IMAGENAME eq имя_файла.exe"
- Вы можете вывести результат выполнения команды в текстовый файл, пример:
tasklist > C:\pid.txt
С помощью tasklist можно отфильтровать процессы и по другим свойствам, например, получить список только зависших программ, подробнее на тему получения списка не отвечающих программ — в этой статье.
Windows PowerShell или Терминал Windows
И ещё одна возможность для получения PID процессов — использование терминала Windows или PowerShell:
- Запустите Windows PowerShell или Терминал Windows, для этого можно использовать меню по правому клику на кнопке «Пуск».
- Базовый вариант команды:
Get-Process
выдаст список всех процессов, PID будет отображен в столбце Id
- Если в выводе требуется оставить информацию только об имени процесса и его ИД, используйте следующий синтаксис:
Get-Process | Format-Table -Property ProcessName,Id
- Команда для получения информации о PID процессов с указанным именем:
Get-Process | Where {$_.ProcessName -Like "Имя процесса"} | Format-Table -Property ProcessName,Id
На этом всё: надеюсь, подходящий для себя способ получить нужную информацию вы нашли. Знаете другие методы получения PID процессов в Windows? — буду рад вашему комментарию ниже.
В данной статье показаны действия, с помощью которых можно узнать PID (идентификатор процесса) в операционной системе Windows.
Идентификатор процесса (process identifier, PID) — уникальный номер процесса в операционной системе Windows.
Все процессы имеют уникальные идентификаторы PID, которые автоматически присваиваются каждому процессу когда он создается в операционной системе, что позволяет ядру системы различать процессы.
При необходимости можно узнать PID (идентификатор процесса).
Как узнать PID (идентификатор процесса) в диспетчере задач
Чтобы узнать PID (идентификатор процесса), откройте диспетчер задач и перейдите на вкладку Процессы, затем нажмите правой кнопкой мыши на заголовок таблицы и в контекстном меню выберите пункт ИД процесса.
Теперь найдите нужный процесс, и в столбце ИД процесса будет отображен идентификатор соответствующего процесса.
Как узнать PID (идентификатор процесса) в командной строке
Также узнать PID (идентификатор процесса) можно используя командную строку.
Запустите командную строку и выполните следующую команду:
tasklist
Найдите нужный процесс, в столбце PID будет отображен идентификатор процесса.
Также можно отобразить процессы в виде списка, для этого в командной строке выполните следующую команду:
tasklist /fo list
Найдите нужный процесс, в строке PID будет отображен идентификатор процесса.
Используя рассмотренные выше действия, можно узнать PID (идентификатор процесса) в операционной системе Windows.
- Что такое PID (ИД процесса)?
- Как узнать PID процесса?
- Заключение
Для идентификации запущенных процессов в Windows каждому из них присваивается уникальный номер PID. Определить его можно разными способами. Рассмотрим, что такое PID процесса в операционной системе и как можно узнать его.
Что такое PID (ИД процесса)?
Идентификатор PID — это уникальный номер процесса, который присваивается каждой выполняемой задаче в Windows. Его можно использовать для разных целей. Например, для поиска причин неисправностей процесса в интернете или настройки отладчика к программе.
Как узнать PID процесса?
Определить идентификатор задачи в Windows можно разными способами. Разберем основные методы, которые позволят узнать PID процесса в ОС.
Диспетчер задач
Основной способ узнать PID — посмотреть его в Диспетчере задач. Открыть утилиту можно следующими методами:
- Комбинацией клавиш Ctrl + Shift + Esc.
- Кликнув ПКМ по панели задач и выбрав пункт Диспетчер задач.
- Найдя приложение в поиске на панели задач.
- Щелкнув правой кнопкой по кнопке Пуск и нажав на строку Диспетчер задач.
После того как Диспетчер запущен, нужно открыть в нем раздел с полными сведениями о выполняемых в текущий момент процессах. В Windows 11 он носит название Сведения, а в Windows 10, 8 и 8,1 — Подробности.
В списке процессов присутствует колонка ИД процесса, в которой отображается PID для каждой задачи в виде десятичного числа.
Если эта графа отсутствует в таблице, щелкните правой кнопкой по заголовку списка, нажмите на ссылку Выбрать столбцы в контекстном меню и установите отображение нужной колонки в настройках. После этого PID начнет отображаться.
Монитор ресурсов
Увидеть ИД для каждой задачи также можно в утилите Монитор ресурсов. Это встроенное в Windows приложение для просмотра информации о выполняемых в операционной системе процессах.
Чтобы зайти в Монитор ресурсов, можно воспользоваться командой resmon в программе Выполнить (открывается при помощи комбинации клавиш Win+R). Другой вариант — найти утилиту в поиске на строке задач и запустить оттуда.
Во вкладке Обзор можно видеть полный список запущенных задач. Около названия каждой из них отображается соответствующий ей PID (столбец ИД процесса). В окне программы также можно отслеживать нагрузку на процессор, диск и сеть.
Командная строка
Один из альтернативных вариантов просмотра PID — использование CMD. Он может быть удобен и полезен в некоторых случаях. Чтобы воспользоваться этим методом, проделайте следующее:
1. Перейдите в Командную строку. Это можно сделать либо командой cmd.exe в окне Выполнить (оно запускается сочетанием кнопок Win + R), либо через поиск на строке задач, либо через контекстное меню по иконке Пуск.
2. Вставьте в окно CMD команду tasklist, чтобы вывести на экран полный список запущенных процессов. Для каждого из них отобразится PID. Проматывать список можно ползунком справа или клавишами стрелок на клавиатуре.
PowerShell
Аналог Командной строки — консоль PowerShell. Открыть ее можно, например, через контекстное меню по клавише Пуск или строку поиска на панели задач. В окне PowerShell нужно воспользоваться командой Get-Process, чтобы вывести в окно список процессов. В столбце Id отобразятся PID задач.
Сторонние утилиты
Для просмотра ИД процессов можно использовать специальные сторонние утилиты. Например, программу Process Explorer от Microsoft. Программа имеет расширенный функционал для просмотра и анализа запущенных процессов. Приложение входит в состав пакета ПО Sysinternals Live. Скачать Process Explorer можно на нашем сайте.
Скачайте приложение, распакуйте архив с ним и запустите EXE-файл нужной разрядности. Программа портативная и не требует установки. В окне приложения отображается подробный список процессов. В графе PID для каждой задачи указан уникальный идентификатор.
Заключение
В Windows есть большое количество средств для просмотра и анализа выполняемых в системе процессов. С их помощью можно отслеживать работу задач, выполняемых в текущий момент, и получать больше информации о них, в том числе просматривать PID.
I’m trying to find a way to get my own PID from a command prompt (for later use in bat scripts).
So far the only useful way I found was to use getpids.exe
from here : http://www.scheibli.com/projects/getpids/index.html, but I’m looking for a command that’s «built in» to Windows.
I’m looking for a «bullet proof» way. No assumptions about my process being the only cmd.exe or anything.
Dave M
4,51422 gold badges31 silver badges30 bronze badges
asked Mar 26, 2010 at 5:32
0
Since none of the other solutions are bulletproof and built in, I figured I’d offer the following solution, but note that you’ll need to parse/save the results somehow:
title mycmd
tasklist /v /fo csv | findstr /i "mycmd"
mklement
5665 silver badges11 bronze badges
answered Mar 26, 2010 at 15:12
tony rothtony roth
3,88418 silver badges14 bronze badges
7
Expanding upon Tony Roth’s answer:
title uniqueTitle
for /f "tokens=2 USEBACKQ" %f IN (`tasklist /NH /FI "WINDOWTITLE eq uniqueTitle*"`) Do echo %f
Using the WINDOWTITLE filter avoids the pipe so you can put it in a for loop and assign it to a variable with SET if you like:
title uniqueTitle
for /f "tokens=2 USEBACKQ" %f IN (`tasklist /NH /FI "WINDOWTITLE eq uniqueTitle*"`) Do set ourPID=%f
Removing the /v
makes it quicker, and the /NH
gets rid of the header line. You need the wildcard after "uniqueTitle"
because the window title actually contains the current command (thus it would go on and on if you tried to match it fully).
mklement
5665 silver badges11 bronze badges
answered Dec 7, 2016 at 13:07
DavidDavid
1311 silver badge3 bronze badges
Using PowerShell + WMI :
powershell (Get-WmiObject Win32_Process -Filter ProcessId=$PID).ParentProcessId
Using WMIC :
for /f %a in ('wmic os get LocalDateTime ^| findstr [0-9]') do set NOW=%a
wmic process where "Name='wmic.exe' and CreationDate > '%NOW%'" get ParentProcessId | findstr [0-9]
(as always, double the %
sign with for
in batch files)
answered Sep 20, 2017 at 0:02
4
I believe the following is bulletproof, provided the user has access to WMIC and TEMP points to a valid path where the user has write privileges. This is the end result of some collaborative work at http://www.dostips.com/forum/viewtopic.php?f=3&t=6133.
@echo off
:getPID [RtnVar]
::
:: Store the Process ID (PID) of the currently running script in environment variable RtnVar.
:: If called without any argument, then simply write the PID to stdout.
::
setlocal disableDelayedExpansion
:getLock
set "lock=%temp%\%~nx0.%time::=.%.lock"
set "uid=%lock:\=:b%"
set "uid=%uid:,=:c%"
set "uid=%uid:'=:q%"
set "uid=%uid:_=:u%"
setlocal enableDelayedExpansion
set "uid=!uid:%%=:p!"
endlocal & set "uid=%uid%"
2>nul ( 9>"%lock%" (
for /f "skip=1" %%A in (
'wmic process where "name='cmd.exe' and CommandLine like '%%<%uid%>%%'" get ParentProcessID'
) do for %%B in (%%A) do set "PID=%%B"
(call )
))||goto :getLock
del "%lock%" 2>nul
endlocal & if "%~1" equ "" (echo(%PID%) else set "%~1=%PID%"
exit /b
The script establishes an exclusive lock on a temporary file that incorporates the current time into the name. There can only be a collision if two like named batch processes attempt to get the PID within the same 0.01 second time interval, in which case only one will succeed.
Any process that fails will repeatedly loop back and try again with a new lock file path until it succeeds.
The full path to the lock file is transformed into a unique ID that can be used in the WMIC query. WMIC is run within a FOR /F command, which means it is running in a child cmd.exe process. That is why the ParentProcessID of the cmd.exe process is retrieved.
answered Dec 21, 2014 at 12:53
dbenhamdbenham
6514 silver badges12 bronze badges
1
- Windows Task Manager, you will need to go to View -> Select Columns.. and select PID.
- «tasklist /v» to get verbose task information in command prompt.
- Process Explorer from live.sysinternals.com.
answered Mar 26, 2010 at 8:39
Vivek KumbharVivek Kumbhar
3,0731 gold badge18 silver badges13 bronze badges
3
if you know there’s only one cmd.exe running, you can get the PID this way:
for /F "tokens=1,2" %%i in ('tasklist /FI "IMAGENAME eq cmd.exe" /fo table /nh') do set pid=%%j
echo %pid%
answered Jun 21, 2016 at 6:07
3
This should do the trick:
tasklist /v
answered Mar 26, 2010 at 8:16
WooYekWooYek
3042 silver badges8 bronze badges
If you want to find the PID of imagename «notepad.exe», then the following code will work for you:
for /F "tokens=1,2" %i in ('tasklist') do (
if "%i" equ "notepad.exe" (set x=%j)
)
echo %x%
dawud
15.2k3 gold badges43 silver badges61 bronze badges
answered Jun 17, 2014 at 8:53
1
If you’ve got the Windows 2003 Resource kit push it through qgrep to get just the line you want. You could then extract the pid from here (this assumes you’ve only got one cmd running at a time),
tasklist /v | qgrep cmd
cmd.exe 2040 RDP-Tcp#447 0 1,804 K Running MACHINE\Administrator 0:00:00 Command Prompt
answered Mar 26, 2010 at 8:47
GuppyGuppy
1285 bronze badges
Take a look at this little batch trick. It sets the title of cmd to a special value then uses tasklist to find it. Inventive
\\Greg
answered Mar 26, 2010 at 14:10
uSlackruSlackr
6,42222 silver badges37 bronze badges
THIS IS SHORT WAY TO GET PROCESS ID FOR OPEN CMD
tasklist /v /fi "imagename EQ cmd.exe" /FO LIST | FIND "PID:"
answered Sep 16, 2018 at 20:26
you can try with getcmdPid.bat — this is a selfcompiled .net application embedded in a bat script and returns the PID as the errorlevel:
call getcmdPid
echo %errorlevel%
answered Apr 3, 2020 at 8:34
npocmakanpocmaka
4315 silver badges6 bronze badges
1
This answer will give you ONLY the process ID, and none of the extra stuff the top answer includes.
title mycmd
tasklist /v /fo csv | findstr /i "mycmd" > PIDinfo.txt
set /p PIDinfo=<PIDinfo.txt
set PID1=%PIDinfo:~11,5%
set PID2=%PIDinfo:~11,4%
if %PID2% gtr 8100 (
set PID=%PID2%
) else (
set PID=%PID1%
)
echo %PID%
Explanation:
-there will not be a PID for cmd.exe that is greater than 18100 so check if PID2 is greater than 8100 so we know if it’s a 4 digit or 5 digit number
case 1: a 5 digit PID like 17504 has a PID1 val 17504 and a PID2 val of 1750, so we use PID1
case 2: a 4 digit PID like 8205 has a PID1 val of 8205″ and a PID2 val of 8205, so we use PID2
case 3: a 4 digit PID like 4352 has a PID1 val of 4352″ and a PID2 val of 4352, so we use PID2
answered Aug 16, 2019 at 17:53
CollinCollin
1113 bronze badges
To get the PID for the current user, see my example below for restarting the explorer process:
@echo off
for /F "tokens=1,2" %%i in ('tasklist /FI "IMAGENAME eq explorer.exe" /FI "USERNAME eq %USERDOMAIN%\%USERNAME%" /FO table /NH') do taskkill /F /PID %%j
start explorer.exe
answered Aug 31, 2021 at 9:52
From the above I used this to get current process id in a batch file:
for /f %a in (‘powershell «$proc=Get-WmiObject Win32_Process -Filter ProcessId=$PID; $proc.ParentProcessId»‘) do set PID=%a
answered Jan 31, 2022 at 9:38
1
I found the easiest solution in a comment by Nicolas Melay:
for /F %%a in ('PowerShell -ex bypass "(gwmi Win32_Process -f ProcessID=$((gwmi Win32_Process -f ProcessId=$PID).ParentProcessID)).ParentProcessID"') do set my_pid=%%a
It uses PowerShell to get the PID of the grandparent process, as the for
introduces an extra cmd.exe
.
answered Nov 23, 2022 at 15:02
You must log in to answer this question.
Not the answer you’re looking for? Browse other questions tagged
.
Not the answer you’re looking for? Browse other questions tagged
.