您可以使用WMI
object Win32_PerfFormattedData_PerfProc_Process
收集所有这些数据。
Get-WmiObject Win32_PerfFormattedData_PerfProc_Process `
| Where-Object { $_.name -inotmatch '_total|idle' } `
| ForEach-Object {
"Process={0,-25} CPU_Usage={1,-12} Memory_Usage_(MB)={2,-16}" -f `
$_.Name,$_.PercentProcessorTime,([math]::Round($_.WorkingSetPrivate/1Mb,2))
}
如果您需要内存占总内存的百分比,您可以在开始时添加以下内容以获得系统中的总 RAM。
$RAM= Get-WMIObject Win32_PhysicalMemory | Measure -Property capacity -Sum | %{$_.sum/1Mb}
然后更改WorkingSetPrivate
计算如下
([math]::Round(($_.WorkingSetPrivate/1Mb)/$RAM*100,2))
NoteCPU 统计信息在此WMI
对象四舍五入到最接近的现在,我已经计算出当前使用的内存(以兆字节为单位)。有关此类的更多信息,请参阅此link https://msdn.microsoft.com/en-us/library/aa394323(v=vs.85).aspx.