Get-Process总内存使用量

时间:2014-10-24 16:28:18

标签: powershell

$Processes = get-process -computername $tag1 | Group-Object -Property ProcessName
foreach($Process in $Processes)
{
    $Obj = New-Object psobject
    $Obj | Add-Member -MemberType NoteProperty -Name Name -Value $Process.Name
    $Obj | Add-Member -MemberType NoteProperty -Name Mem -Value ($Process.Group|Measure-Object WorkingSet -Sum).Sum
    $Obj
}   

目前,这会以字节为单位显示内存使用情况,如何更改此内容以显示如下内容:

76,592 KB

并输出自动调整的所有内容? (与左边对齐)

4 个答案:

答案 0 :(得分:21)

Format-Table可以显示表达式并自动调整列的大小以适应结果:

get-process -computername $tag1 | Group-Object -Property ProcessName | 
    Format-Table Name, @{n='Mem (KB)';e={'{0:N0}' -f (($_.Group|Measure-Object WorkingSet -Sum).Sum / 1KB)};a='right'} -AutoSize

答案 1 :(得分:5)

除以1KB

也可以使用1MB,1GB,1TB。

Powershell非常有帮助。

此链接应有助于Powershell Tip on Byte conversion

答案 2 :(得分:5)

Get-Process | Select-Object Name,@{Name='WorkingSet';Expression={($_.WorkingSet/1KB)}}

答案 3 :(得分:4)

要获取64位Windows操作系统上使用的每个进程的内存量,请运行以下命令...

 Get-Process | Sort-Object WorkingSet64 | Select-Object Name,@{Name='WorkingSet';Expression={($_.WorkingSet64/1KB)}} | Export-Csv -Path "processes64.csv" -Delimiter ","