
Get Memory usage using PowerShell (every 3 min)
Monitor your machine’s Memory Usage using PowerShell: By default, the script runs every 3 minutes, but this can be adjusted
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
clear function GetProcessmemory() { $Processes = get-process $gDate = Get-Date -format "yyyyMMdd" $gTime = Get-Date -format "HH:mm" $gFileName = "c:\sps\RegisterProcessMemoryUsage$(get-date -f yyyyMMdd).csv" foreach($Process in $Processes) { $Obj = New-Object psobject $Obj | Add-Member -MemberType NoteProperty -Name Date -Value $gDate $Obj | Add-Member -MemberType NoteProperty -Name Time -Value $gTime $Obj | Add-Member -MemberType NoteProperty -Name ID -Value $Process.Id $Obj | Add-Member -MemberType NoteProperty -Name Name -Value $Process.Name $Obj | Add-Member -MemberType NoteProperty -Name PagedMem -Value $Process.PagedMemorySize64 $Obj | Add-Member -MemberType NoteProperty -Name PagedSysMem -Value $Process.PagedSystemMemorySize64 $Obj | Add-Member -MemberType NoteProperty -Name nonPagedSystemMem -Value $Process.NonpagedSystemMemorySize64 $Obj | Add-Member -MemberType NoteProperty -Name WorkingSet -Value $Process.WorkingSet64 $Obj | Add-Member -MemberType NoteProperty -Name VirtualMemory -Value $Process.VirtualMemorySize64 $Obj | Add-Member -MemberType NoteProperty -Name Responding -Value $Process.Responding $Obj | ConvertTo-Csv -Delimiter ";" -NoTypeInformation | Out-File -Append -Encoding Ascii -FilePath $gFileName #This is for PS3: $Obj | Export-Csv -Path $gFileName -Delimiter "," -Append -NoTypeInformation } #This removes double quotes from the numeric columns (content of the regexp depends on the Add-Members above) (Get-Content $gFileName) -replace '^"(.*?)",(.*?),"(.*?)",(.*?),"(.*?)","(.*?)","(.*?)",(.*?)$', '$1,$2,$3,$4,$5,$6,$7,$8' | Set-Content $gFileName } while ($true) { GetProcessmemory Start-Sleep -s 180 } Exit |