PS-Commands/Scripts/Get-MemorySize.psm1

32 lines
1.9 KiB
PowerShell
Raw Permalink Normal View History

function Get-MemorySize {
$Memory = Get-CimInstance Win32_OperatingSystem
$MemUse = $Memory.TotalVisibleMemorySize - $Memory.FreePhysicalMemory
2023-12-19 00:06:14 +03:00
$MemUserProc = ($MemUse / $Memory.TotalVisibleMemorySize) * 100
2024-01-29 23:41:19 +03:00
$PageSize = $Memory.TotalVirtualMemorySize - $Memory.TotalVisibleMemorySize
$PageFree = $Memory.FreeVirtualMemory - $Memory.FreePhysicalMemory
$PageUse = $PageSize - $PageFree
$PageUseProc = ($PageUse / $PageSize) * 100
$PageFile = Get-CimInstance Win32_PageFileUsage
$PagePath = [string]$($PageFile).Description
$MemVirtUse = $Memory.TotalVirtualMemorySize - $Memory.FreeVirtualMemory
$MemVirtUseProc = ($MemVirtUse / $Memory.TotalVirtualMemorySize) * 100
$GetProcess = Get-Process
$ws = ((($GetProcess).WorkingSet | Measure-Object -Sum).Sum/1gb).ToString("0.00 GB")
$pm = ((($GetProcess).PM | Measure-Object -Sum).Sum/1gb).ToString("0.00 GB")
$CollectionMemory = New-Object System.Collections.Generic.List[System.Object]
$CollectionMemory.Add([PSCustomObject]@{
2024-01-29 23:41:19 +03:00
MemoryAll = ($memory.TotalVisibleMemorySize/1mb).ToString("0.00 GB")
MemoryUse = ($MemUse/1mb).ToString("0.00 GB")
MemoryUseProc = [string]([int]$MemUserProc)+" %"
PageSize = ($PageSize/1mb).ToString("0.00 GB")
PageUse = ($PageUse/1mb).ToString("0.00 GB")
PageUseProc = [string]([int]$PageUseProc)+" %"
PagePath = $PagePath
MemoryVirtAll = ($memory.TotalVirtualMemorySize/1mb).ToString("0.00 GB")
MemoryVirtUse = ($MemVirtUse/1mb).ToString("0.00 GB")
MemoryVirtUseProc = [string]([int]$MemVirtUseProc)+" %"
ProcWorkingSet = $ws
ProcPageMemory = $pm
})
$CollectionMemory
}