windows3-1 Exercise 1: Is Available Really Free Plus Standby? ================================================================= Verification: Level 1 (read-only; run on the author's machine, no administrator rights). Prediction (work this out before running the script): Available should equal Free & Zero plus the three Standby counters (normal priority, reserve, core), so the difference should be 0 MB or within a few MB, because the five counters are read in one Get-Counter call. Free should be a small share of RAM, well under 10 %, with the bulk of Available being standby cache. ex1.ps1 (run it with: powershell -ExecutionPolicy Bypass -File ex1.ps1): # ex1.ps1: is Available really Free + Standby? $names = '\Memory\Available Bytes', '\Memory\Free & Zero Page List Bytes', '\Memory\Standby Cache Normal Priority Bytes', '\Memory\Standby Cache Reserve Bytes', '\Memory\Standby Cache Core Bytes' $v = @{} foreach ($s in (Get-Counter $names).CounterSamples) { $v[($s.Path -split '\\')[-1]] = $s.CookedValue } $standby = $v['standby cache normal priority bytes'] + $v['standby cache reserve bytes'] + $v['standby cache core bytes'] $sum = $v['free & zero page list bytes'] + $standby 'Available : {0,8:N3} GB' -f ($v['available bytes'] / 1GB) 'Free + Standby : {0,8:N3} GB' -f ($sum / 1GB) 'Difference : {0,8:N1} MB' -f (($v['available bytes'] - $sum) / 1MB) 'Free as % of RAM : {0,8:N1} %' -f (100 * $v['free & zero page list bytes'] / (Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory) Output (real, from the author's machine on 2026-10-24; your numbers will differ): Available : 15.828 GB Free + Standby : 15.828 GB Difference : 0.0 MB Free as % of RAM : 6.6 % WHY THIS WORKS AS AN ANSWER --------------------------- The difference is exactly 0.0 MB, so Available is made of the free list and the standby lists and of nothing else. Only 6.6 % of the usable RAM is on the free list, but 15.83 GB (more than half) is available. That is why "my free memory is nearly zero" is not a diagnosis: standby pages are cached data that Windows can reuse at once. Common mistakes: forgetting one of the three Standby counters (the sum then falls short by the size of the missing one, often hundreds of MB); reading the counters in separate calls so that they change between reads; and treating "Free" in a Win32_OperatingSystem property as the free page list without checking what it counts.