How to search a process by name?

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.


An alternative to Get-Process:

Get-WmiObject Win32_Process | select commandline | Select-String -Pattern "SearchIndexer"