powershellprocessinstances

Detect number of processes running with the same name


Any ideas of how to write a function that returns the number of instances of a process is running?

Perhaps something like this?

function numInstances([string]$process)
{
    $i = 0
    while(<we can get a new process with name $process>)
    {
        $i++
    }

    return $i
}

Edit: Started to write a function... It works for a single instance but it goes into an infinite loop if more than one instance is running:

function numInstances([string]$process)
{
$i = 0
$ids = @()
while(((get-process $process) | where {$ids -notcontains $_.ID}) -ne $null)
    {
    $ids += (get-process $process).ID
    $i++
    }

return $i
}

Solution

  • function numInstances([string]$process)
    {
        @(get-process -ea silentlycontinue $process).count
    }
    

    EDIT: added the silently continue and array cast to work with zero and one processes.