Powershell使用id进程获取特定的进程计数器

Ken*_*n J 5 powershell counter process

我想获得具有进程ID的进程的特定计数器.但是我想不出一种方法来使用where-object来匹配计数器的进程.喜欢

Where Gc '\process(*)\id process -eq 456 gc '\process($name)\working set'
Run Code Online (Sandbox Code Playgroud)

因此,使用进程ID来检索名称并获取工作集(或其他类似的效果).

小智 6

为具有相同进程名称的多个实例的进程获取正确的性能计数器路径似乎有点令人费解:

$proc_id=6580
$proc_path=((Get-Counter "\Process(*)\ID Process").CounterSamples | ? {$_.RawValue -eq $proc_id}).Path
Get-Counter ($proc_path -replace "\\id process$","\% Processor Time")

Timestamp                 CounterSamples
---------                 --------------
11/20/2014 5:39:15 PM     \\myhost\process(conhost#2)\% processor time :
                          0
Run Code Online (Sandbox Code Playgroud)


Sha*_*evy 5

您可以获取进程名称的计数器,因此首先使用其ID获取进程名称,然后将进程名称嵌入到计数器中.例如:

$id = # your process id
$proc = (Get-Process -Id $id).Name
Get-Counter -Counter "\Process($proc)\% Processor Time"
Run Code Online (Sandbox Code Playgroud)

  • 这对于进程的多个实例不起作用. (5认同)