## The PowerShell Script **check-swap-space.ps1** This PowerShell script checks the free swap space. ## Parameters ```powershell check-swap-space.ps1 [[-MinLevel] ] [] -MinLevel Specifies the minimum level (10 GB by default) Required? false Position? 1 Default value 10 Accept pipeline input? false Accept wildcard characters? false [] This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. ``` ## Example ```powershell PS> ./check-swap-space ✅ Swap space uses 63 GB of 1856 GB. ``` ## Notes Author: Markus Fleschutz | License: CC0 ## Related Links https://github.com/fleschutz/PowerShell ## Source Code ```powershell <# .SYNOPSIS Checks the swap space .DESCRIPTION This PowerShell script checks the free swap space. .PARAMETER MinLevel Specifies the minimum level (10 GB by default) .EXAMPLE PS> ./check-swap-space ✅ Swap space uses 63 GB of 1856 GB. .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> param([int]$MinLevel = 10) # minimum level in GB function MB2String { param([int64]$Bytes) if ($Bytes -lt 1000) { return "$($Bytes)MB" } $Bytes /= 1000 if ($Bytes -lt 1000) { return "$($Bytes)GB" } $Bytes /= 1000 if ($Bytes -lt 1000) { return "$($Bytes)TB" } $Bytes /= 1000 if ($Bytes -lt 1000) { return "$($Bytes)PB" } $Bytes /= 1000 if ($Bytes -lt 1000) { return "$($Bytes)EB" } } try { [int]$Total = [int]$Used = [int]$Free = 0 if ($IsLinux) { $Result = $(free --mega | grep Swap:) [int]$Total = $Result.subString(5,14) [int]$Used = $Result.substring(20,13) [int]$Free = $Result.substring(32,11) } else { $Items = Get-WmiObject -class "Win32_PageFileUsage" -namespace "root\CIMV2" -computername localhost foreach ($Item in $Items) { $Total = $Item.AllocatedBaseSize $Used = $Item.CurrentUsage $Free = ($Total - $Used) } } if ($Total -eq 0) { "⚠️ No swap space!" } elseif ($Free -lt $MinLevel) { "⚠️ Swap space has only $(MB2String $Free) of $(MB2String $Total) left to use!" } elseif ($Used -eq 0) { "✅ Swap space of $(MB2String $Total) is unused." } elseif ($Used -lt $Free) { "✅ Swap space uses $(MB2String $Used) of $(MB2String $Total)." } else { "✅ Swap space has $(MB2String $Free) of $(MB2String $Total) left." } exit 0 # success } catch { "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" exit 1 } ``` *Generated by convert-ps2md.ps1 using the comment-based help of check-swap-space.ps1*