2014-10-24 11 views
5
$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 
} 

Obecnie ten wyświetla zużycie pamięci w bajtach, jak mogę to zmienić, aby zobaczyć coś takiego:Get-Process z wykorzystaniem całkowitej pamięci

76,592 KB

a także wyjście wszystko co jest przydzielany automatycznie? (Wyrównany do lewej strony)

Odpowiedz

11

Format-Table może pokazać wyrażenia i auto-rozmiaru kolumny, aby dopasować wyniki:

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 
+0

To działa bardzo. Dzięki. Czy istnieje sposób dodawania przecinków do cyfr? – Aaron

+1

@Aarona dla części przecinka, po prostu musisz mieć wyjście numeru do operacji formatowania ''{0: N}' -f (($ _. Grupa .../1KB})' – Matt

+0

Czy możesz być Nieco bardziej szczegółowe na temat, gdzie to wprowadzić? – Aaron

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

Bardzo krótki i na temat, dziękuję. – Aaron

2

aby uzyskać ilość pamięci na proces stosowany na 64-bitowy system operacyjny Windows, uruchom następującą komendę ...

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