Windows найти процесс по имени

If you’re looking for processes such as SearchIndexer — this should be pretty simple to do with PowerShell

Get-Process will show you a list of running processes. In this case, I have piped it to Select -first 1 because you’re interested in the column headers, not a list of the 100+ processes on my PC:enter image description here


Next up — now you know how to get processes, you need to narrow this down to a specific process. Below, I’ve shown 4 methods to do this:
enter image description here
Get-Process Search* will return all processes starting with search

Get-Process SearchIndexer will return just that one process if it exists

Get-Process | Where {$_.Name -eq "SearchIndexer"} will find all processes and then only select the one called SearchIndexer

Get-Process | Where {$_.ProcessName -Like "SearchIn*"} will get all processes and narrow down to ones that start with «SearchIn».

As a side note — you can use wild cards at either end, so `rchInde» will also return the process you want.


Now — to kill the process — pipe it to Stop-Process:
enter image description here
..But it didnt work!


To Stop it — as with some processes — you need to run PowerShell as an Administrator:
enter image description here
..but you still get a prompt!

…ignore the error at the bottom, we’ve just proven that the process doesn’t exist any more

Add the -Force switch and the prompt goes away!
enter image description here


But we dont like errors when we try to do it over and over:
enter image description here
…so we need to handle it slightly differently. Instead of explicitly stopping that one process, grab all of them, filter it down to the ones we want (if any) and then kill them (if they exist):
enter image description here


last up — add it as a scheduled task action (if you need to) as windows likes to restart certain services/processes and you’re all set.

Способов управлять процессами в Windows предостаточно, и командная строка занимает в них далеко не первое место. Однако иногда бывают ситуации, когда все остальные инструменты кроме командной строки недоступны, например некоторые вредоносные программы могут блокировать запуск Task Manager и подобных ему программ. Да и просто для общего развития полезно знать способы управления компьютером из командной строки.

Для управления процессами в командной строке есть две утилиты — tasklist и taskkill. Первая показывает список процессов на локальном или удаленном компьютере, вторая позволяет их завершить. Попробуем …

Если просто набрать команду tasklist в командной строке, то она выдаст список процессов на локальном компьютере.

команда tasklist

По умолчанию информация выводится в виде таблицы, однако ключ /fo позволяет задать вывод в виде списка или в формате CSV, а ключ /v  показывает более подробную информацию о процессах, например команда tasklist /v /fo list выведет подробное описание всех процессов в виде списка.

команда tasklist

Список получится довольно большой, поэтому попробуем уточнить запрос.  Для этого используем ключ /fi , который позволяет использовать фильтры для вывода данных, например команда tasklist /fi ″username eq user″ /fi ″memusage le 40000″ выводит список процессов пользователя user, которые потребляют не больше 40Мб памяти.

команда tasklist

Найдя процессы, которые необходимо завершить, воспользуемся командой taskkill. Завершать процессы можно по имени, идентификатору процесса (PID) или задав условия с помощью фильтров. Для примера запустим несколько экземпляров блокнота (notepad.exe) и попробуем завершить его разными способами.

команда taskkill

Ключ /f завершает процесс принудительно, а /t завершает все дочерние процессы.

Полную справку по командам tasklist и taskkill можно получить, введя их с ключом /?

Теперь пустим в ход тяжелую артиллериюPowerShell. Его можно запустить не выходя из командной строки. Для получения списка процессов используем командлет Get-Process.

командлет Get-Process

Чтобы не выводить весь список процессов можем воспользоваться командлетом Where-Object, который задает фильтр для выводимой информации. Для примера выведем список процессов, которые загружают процессор и отсортируем их по возрастанию нагрузки с помощью команды:

Get-Process | where {$_.cpu -gt 0} | sort cpu

фильтруем вывод процессов

С помощью PowerShell мы можем получить любую информацию о любом процессе. В качестве примера возьмем процесс cmd и выведем список его свойств командой:

Get-Process -Name cmd | Get-Member -Membertype property

смотрим свойства процесса cmd

Выбираем те свойства, что нам интересны ( в примере имя и 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

Pslist может выводить информацию о процессах по имени или ID, например командой pslist notepad -x выведем подробную информацию о нашем «многострадальном» блокноте.

подробный вывод информации о процессе

Особенностью утилиты Pslist является режим task-manager. В  этом режиме информация автоматически обновляется, причем можно задать время работы и интервал обновления. Запускается режим ключом -s , например командой tasklist -s -r 10 запускаем режим программу в режиме task-manager с обновлением раз в 10 сек.

task-manager mode

Завершение процесса программой pskill предельно просто, вводим команду и имя (или ID) процесса и все.

завершение процесса

Справку по утилитам Pslist и Pskill можно посмотреть, введя команду с ключом /?

И еще, все манипуляции с процессами необходимо выполнять с правами администратора, для этого командную строку требуется запускать с повышением привилегий.

If you’re looking for processes such as SearchIndexer — this should be pretty simple to do with PowerShell

Get-Process will show you a list of running processes. In this case, I have piped it to Select -first 1 because you’re interested in the column headers, not a list of the 100+ processes on my PC:enter image description here


Next up — now you know how to get processes, you need to narrow this down to a specific process. Below, I’ve shown 4 methods to do this:
enter image description here
Get-Process Search* will return all processes starting with search

Get-Process SearchIndexer will return just that one process if it exists

Get-Process | Where {$_.Name -eq "SearchIndexer"} will find all processes and then only select the one called SearchIndexer

Get-Process | Where {$_.ProcessName -Like "SearchIn*"} will get all processes and narrow down to ones that start with «SearchIn».

As a side note — you can use wild cards at either end, so `rchInde» will also return the process you want.


Now — to kill the process — pipe it to Stop-Process:
enter image description here
..But it didnt work!


To Stop it — as with some processes — you need to run PowerShell as an Administrator:
enter image description here
..but you still get a prompt!

…ignore the error at the bottom, we’ve just proven that the process doesn’t exist any more

Add the -Force switch and the prompt goes away!
enter image description here


But we dont like errors when we try to do it over and over:
enter image description here
…so we need to handle it slightly differently. Instead of explicitly stopping that one process, grab all of them, filter it down to the ones we want (if any) and then kill them (if they exist):
enter image description here


last up — add it as a scheduled task action (if you need to) as windows likes to restart certain services/processes and you’re all set.

I get two results when I run this:

tasklist /FI «imagename eq PROCESS.exe»

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
PROCESS.exe                   2760 Console                    1      8,156 K
PROCESS.exe                  20160 Console                    1      9,060 K

But I only want to kill ONE of them…

If I open up the Task Manager, I can see that each of my processes have different descriptions.

So all I need to do, is somehow filter by process description.

Can anyone help, please?

Thank you!

asked May 25, 2016 at 10:50

Shaun's user avatar

3

Use the following to distinguish the processes according to their own process ID and their parent process ID:

wmic process get processid,parentprocessid,executablepath | find "PROCESS"

This way, you can find the process ID to kill.

wmic grants access to additional process properties.

Use wmic process get /? to find out what is available.

Another potentially helpful tool is PsList of Microsoft/Sysinternals.

answered May 25, 2016 at 12:17

Axel Kemper's user avatar

Axel KemperAxel Kemper

10.6k2 gold badges31 silver badges54 bronze badges

2

If you want to filter your process list by the window title, just use

tasklist /FI "windowtitle eq Title"

As addition to @Axel’s answer with WMI — the same for description:

WMIC Process WHERE "Description='Only One'" GET ProcessID

And in VBS:

Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_Process WHERE Description = 'My Desc'",,48) 
For Each objItem in colItems
'Do Stuff
Next

Another possible value for description is the assembly’s description which is retrievable with PowerShell. Use Get-Process to obtain the assembly path and retrieve its description with [System.Diagnostics.FileVersionInfo]::GetVersionInfo($File).FileDescription.

answered May 25, 2016 at 12:09

Clijsters's user avatar

ClijstersClijsters

3,9912 gold badges28 silver badges38 bronze badges

1

Поговорим о том, как найти и завершить (убить) приложение (процесс), используя встроенные утилиты командной строки tasklist и taskkill в ОС Windows. 

Процессом в windows называют экземпляр выполняемой программы.

Просмотр запущенных процессов.

Tasklist – консольная утилита для просмотра всех процессов, выводит имя образа, PID, имя сессии, номер сеанса и объем занимаемой памяти для каждого процесса. Запустить ее можно из командной строки windows.

Для запуска командной строки windows, переходим в пункт меню: Пуск —> Выполнить —> В строку вводим команду cmd.exe.

C:\Windows\System32>tasklist

tasklist

Вывод команды tasklist.

Завершение работы процесса.

Taskkill – утилита для завершения работы процесса. Существует несколько вариантов для убийства процесса.

1. По номеру PID.

C:\Windows\System32>taskkill /PID 6056

taskkill /PID

Вывод команды taskkill /PID 6056.

2. По имени.

Windows\System32>taskkill /IM calc.exe

taskkill /IM

Вывод команды taskkill /IM calc.exe.

Дополнительную информацию по применению этих команд  можно получить, используя справку.

C:\>tasklist /?
C:\>taskkill /?

Вот и все. Рассмотрение утилит tasklist и taskkill завершено. Может кому и пригодиться.

  • Windows множественное число в английском языке
  • Windows на флешку через ubuntu
  • Windows код ошибки 7000 windows
  • Windows на флешку утилита от microsoft
  • Windows может связаться с сервером разрешения имен но не удается найти имя узла