If you want a solution that also includes a process with multiple instance IDs, you can use:
$p = $((Get-Counter '\processus(*)\id de processus' -ErrorAction SilentlyContinue).CounterSamples | % {[regex]$a = "^.*\($([regex]::Escape($_.InstanceName))(.*)\).*$";[PSCustomObject]@{InstanceName=$_.InstanceName;PID=$_.CookedValue;InstanceId=$a.Matches($($_.Path)).groups[1].value}}) $id = # your process id $p1 = $p | where {$_.PID -eq $id} Get-Counter -Counter "\Process($($p1.InstanceName+$p1.InstanceId))\% Processor Time" # In french # Get-Counter -Counter "\Processus($($p1.InstanceName+$p1.InstanceId))\% temps processeur"
source share