Get-Process Shared Memory

$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 } 

This currently displays memory usage in bytes, how can I change this to show something like:

76,592 KB

and also display everything that is authorized? (aligned left)

+5
source share
4 answers

A table format can show expressions and automatically sort columns to match results:

 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 
+11
source

Just divide by 1KB

also can use 1MB, 1GB, 1TB.

Powershell is very helpful.

This link should help Tip on using Powershell to convert bytes

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

To get the amount of memory for each process used in a 64-bit Windows operating system, run the following command ...

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

Source: https://habr.com/ru/post/1205454/


All Articles