对于如何在Powershell中获取进程的CPU百分比似乎没有任何简单的解释。我用谷歌搜索并在这里搜索,我没有看到任何确定的东西。有人可以用外行的方式解释如何获得进程的CPU百分比吗?谢谢!
这是让你入门的东西;)
$id4u = gps | ? {$_.id -eq 412}
function get_cpu_percentage {
# Do something cool here
}
get_cpu_percentage $id4u
答案 0 :(得分:2)
使用WMI:
get-wmiobject Win32_PerfFormattedData_PerfProc_Process | ? { $_.name -eq 'powershell' } | select name, PercentProcessorTime
功能:
function get_cpu_percentage ($id )
{
(get-wmiobject Win32_PerfFormattedData_PerfProc_Process | ? { $_.idprocess -eq $id.id }).PercentProcessorTime
}
$id4u = gps | ? {$_.id -eq 412}
get_cpu_percentage -id $id4u
答案 1 :(得分:-1)
这个怎么样?
gps powershell_ise | Select CPU
请注意,这是一个scriptProperty,不会为远程系统显示任何内容。这是众所周知的。
答案 2 :(得分:-1)
get-counter提供有关系统性能的信息。您也可以获取有关单个进程的信息。这里有更多相关内容:http://social.technet.microsoft.com/Forums/lv/winserverpowershell/thread/8d7502d4-9e67-43f7-94da-01755b719cf8和http://blogs.technet.com/b/heyscriptingguy/archive/2010/02/16/hey-scripting-guy-february-16-2010a.aspx 我不确定这是否是您正在寻找的,但是这里有一种使用进程名称和获取计数器的可能性。
注意:如果您有超过1个处理器,我相信您应该将结果除以处理器数量。您可以使用以下方式获取此值:
$env:NUMBER_OF_PROCESSORS
function get_cpu_percentage {
param([string[]]$myProc)
return (get-counter -Counter "\Process($myProc)\% processor time" -SampleInterval 5 -MaxSamples 5 | select -ExpandProperty countersamples | select -ExpandProperty cookedvalue | Measure-Object -Average).average
}
get_cpu_percentage ("powershell")
或使用proc id和gps:
注意:我相信get-process返回的值是自启动以来进程使用的CPU秒数。它不是使用的cpu百分比。
function get_cpu_since_start{
param ([system.object]$p)
$id4ucpu = $p | select-object CPU
return $id4ucpu.CPU
}
get_cpu_since_start (gps | ? {$_.id -eq 412})