Windows Server 2022 gets one big cumulative update a month, plus smaller ones for .NET and Defender. On our image Windows downloads them for you and waits until you choose to install, so a restart never surprises you. The other side is that nobody installs them if you don't. This guide shows three ways to do it, what the restarts look like, and how to get back the disk space updates leave behind. To get the numbers, we brought a Windows Server 2022 installation from its original March 2022 build up to the October 2026 update, step by step.
1. See which build you have
Open PowerShell and run:
$v = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
"{0}.{1}" -f $v.CurrentBuild, $v.UBR
The second number is the update level. Our server started at 20348.587, from March 2022. After all updates it read 20348.5761, the October 2026 cumulative update. That is also where Windows servers you order from us now start: we refreshed our image with these same steps on 25 October 2026. Get-HotFix lists what's installed:
Get-HotFix | Sort-Object InstalledOn | Select-Object -Last 5
2. Install updates
Choose whichever suits you. All three use the same Windows Update.
Settings. Start → Settings → Update & Security → Windows Update → Check for updates, then Install now. If the page notes that some settings are managed by your organization, that's our download-only policy. It doesn't stop you installing.
sconfig. Type sconfig in PowerShell. Option 6) Install updates asks what to search for: choose All quality updates, then install. Option 5) Update setting shows Download only on our image. It also lets you switch to Automatic, which installs and restarts on its own schedule.
The same menu also offers Feature updates. Leave that alone unless you own a licence for a newer Windows Server. sconfig warns that a feature update needs a new product key and disables the version you have.
PowerShell. For a script or a scheduled task, Windows Update's own API does the whole job with no extra modules. This is what we ran:
$session = New-Object -ComObject Microsoft.Update.Session
$result = $session.CreateUpdateSearcher().Search("IsInstalled=0 and IsHidden=0 and Type='Software'")
$updates = New-Object -ComObject Microsoft.Update.UpdateColl
foreach ($u in $result.Updates) { $u.AcceptEula(); [void]$updates.Add($u); $u.Title }
if ($updates.Count -gt 0) {
$d = $session.CreateUpdateDownloader(); $d.Updates = $updates; [void]$d.Download()
$i = $session.CreateUpdateInstaller(); $i.Updates = $updates
$r = $i.Install(); "Result: $($r.ResultCode) Restart needed: $($r.RebootRequired)"
} else { "Nothing to install" }
Run it in an administrator PowerShell. A result code of 2 means success, and on an up-to-date server it simply prints Nothing to install.
3. Restart, and let it finish
After a cumulative update Windows needs to restart, and it may restart twice. Here's what we saw:
| Round | What it installed | Install time | Restarts |
|---|---|---|---|
| 1 | September 2026 cumulative update, .NET update, Defender, removal tool | 22 min | 2 min 51 s, then Windows restarted once more by itself about a minute later |
| 2 | October 2026 cumulative update, Defender | 17 min | About 2 minutes, including a second automatic restart |
| 3 | Defender platform and definitions | 33 s | None |
| 4 | Nothing left | — | — |
Two things to know:
- That second restart is normal. About a minute after we reconnected, Windows restarted again on its own to finish the update. If your Remote Desktop session drops right after you log back in, that's probably why. Wait a minute and connect again.
- Don't force it off while it says "Working on updates". Restart from the Start menu or with
Restart-Computer, then wait. A forced power-off while system files are being swapped is the usual way an update leaves Windows unable to start.
Then check again. A server that's months behind gets its updates in layers: ours was offered the October update only after the September one was in. Repeat until the search finds nothing.
4. Get the disk space back
Updates grow the disk. Windows keeps the old version of every system file it replaces, so you can uninstall an update later. On our 50 GB server:
| Stage | Used space |
|---|---|
| Original 2022 image | 12.6 GB |
| During the first cumulative update | 20.8 GB |
| After both cumulative updates | 24.5 GB |
After StartComponentCleanup | 17.3 GB |
After /ResetBase | 15.7 GB |
| After clearing the update download cache | 14.6 GB |
Clean up from an administrator PowerShell:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
The first command shows how much can be reclaimed. The second removes old versions of components that newer updates have replaced. On our server it ran for 14 minutes and freed 6.9 GB. Adding /ResetBase freed another 1.6 GB in about a minute and a half, but after it the updates you already installed can't be uninstalled anymore. We'd skip it on a working server and keep it for when you really need the space.
The files Windows Update downloaded can go too. They took 1.1 GB on our server:
Stop-Service wuauserv
Remove-Item C:\Windows\SoftwareDistribution\Download\* -Recurse -Force
Start-Service wuauserv
To see what fills the disk besides updates, the disk space guide has numbers for both Windows and Linux.
5. Make it a habit
Microsoft releases security updates on the second Tuesday of each month. Once a month, run sconfig option 6 or the script above, restart, and check again. Before a big update, copy anything important off the server. And if you haven't yet, secure RDP. Updates fix holes in Windows, but they won't stop someone guessing a weak password.
Which plan
Updates need room. Windows-Small (4 vCPU, 4 GB, 50 GB, $11/mo) is what we tested on, and it still had more than 25 GB free after two cumulative updates. If you plan to install large programs, Windows-Medium gives you 60 GB for $19/mo. All four Windows plans are on the Windows VPS page, and payment is in USDT, USDC or ETH on Base, Ethereum or Polygon.
Comments
No comments yet. Be the first.