Windows Update on a VPS is a love-hate relationship. Skip the patches and you are exposed within days — the internet scanners that hammer RDP and IIS find unpatched boxes in hours. Install them blindly and you get a surprise reboot at 2 a.m. that takes down your IIS sites, SQL Server, or long-running jobs, plus a C:\Windows\SoftwareDistribution folder that bloats your small system drive. This guide covers the practical middle ground: controlling when updates install, surviving reboots, and keeping the disk from filling up.
The problem is compounded on plans with small system drives — many budget Windows VPS products ship 40–80 GB, and two feature updates can eat a third of that. Before you build an update strategy around a cramped C: drive, compare Windows VPS plans on our comparison table to see which providers include a separate data disk or a roomier system volume by default.
Step 1 — See what is installed and what is pending
Start with the built-in inventory commands, then add the module that makes update management practical over plain RDP:
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10
(Get-ChildItem C:\Windows\SoftwareDistribution\Download -ErrorAction SilentlyContinue).Count
Install-Module PSWindowsUpdate -Force -Scope CurrentUser
Get-WUList -MicrosoftUpdate # pending updates
Get-WUHistory | Select-Object -First 10
The built-in cmdlets only show installed patches. PSWindowsUpdate is the de facto standard for VPS administrators: it talks to the same Windows Update agent the Settings app uses, but from PowerShell, which means it works headless and can be scheduled with Task Scheduler.
Step 2 — Control when updates install
On Windows Server, update behavior is driven by the Windows Update policy. To defer automatic installs and reboots, set these registry values (or the matching Group Policy under Computer Configuration → Administrative Templates → Windows Components → Windows Update):
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /t REG_DWORD /d 0 /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v AUOptions /t REG_DWORD /d 3 /f
gpupdate /force
AUOptions values: 2 = notify before download, 3 = auto download and notify, 4 = auto download and schedule install, 5 = auto download and auto restart. For a VPS running production IIS or SQL Server, 3 is the sweet spot: updates download automatically, but the reboot stays your decision. You can also pause updates for up to 35 days from Settings → Windows Update, and set active hours so any reboot that slips through happens inside your maintenance window.
Two more registry values control the reboot itself. RebootRelaunchTimeout sets how long Windows waits before forcing a restart after an install, and NoAutoRebootWithLoggedOnUsers stops Windows from restarting while an RDP session is active — a real hazard on a VPS where your own session is always “logged on”:
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v RebootRelaunchTimeout /t REG_DWORD /d 180 /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoRebootWithLoggedOnUsers /t REG_DWORD /d 1 /f
Step 3 — The reboot plan
A VPS has no user to click “Restart now”, so define the reboot policy before you need it. Two patterns work well:
- Monthly maintenance window: run
Get-WUInstall -AcceptAllvia Task Scheduler on the first Sunday at 3 a.m., then reboot deliberately after verifying IIS and SQL come back cleanly. - Emergency patching: for out-of-band critical fixes, install with
-IgnoreReboot, verify your services, and reboot when the window opens.
Get-WUInstall -MicrosoftUpdate -AcceptAll -IgnoreReboot
# verify services, then reboot inside the maintenance window:
Restart-Computer -Force
Step 4 — Stop the disk bloat
Update residue — not the updates themselves — is what fills small system drives. Three cleanup targets matter: the SoftwareDistribution download cache, the WinSxS component store, and CBS servicing logs:
Stop-Service wuauserv -Force
Remove-Item C:\Windows\SoftwareDistribution\Download\* -Recurse -Force -ErrorAction SilentlyContinue
Start-Service wuauserv
Dism /Online /Cleanup-Image /AnalyzeComponentStore
Dism /Online /Cleanup-Image /StartComponentCleanup
Dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase
Run AnalyzeComponentStore first to see how much is reclaimable. /ResetBase marks previous versions of all components as removable — do it only when you are confident in the current patch level, because it also removes the ability to uninstall older updates. On a server that has been through two feature updates, expect 2–6 GB back.
A real-world case
A customer’s 40 GB system drive hit 200 MB free after the 2025 feature update. A single DISM component cleanup freed 4.8 GB, and clearing SoftwareDistribution added another 1.2 GB — no resize, no reinstall, no downtime. The reboot-surprise problem was solved the same week by switching AUOptions to 3 and adding a scheduled monthly install.
If you are starting fresh and want a plan with a roomier system drive, InterServer Windows VPS includes generous storage for the price, and promo code TRYINTERSERVER gets the first month for a cent — a cheap way to test an update strategy before it matters.
Bottom line
Treat Windows Update like a production change: know what is pending, control when it installs, schedule the reboot, and clean up afterward. Three commands — Get-WUList, Get-WUInstall, and Dism /StartComponentCleanup — cover 90% of VPS update management. And when the plan’s disk or CPU becomes the bottleneck, check the full specs and pricing on our comparison table before you resize.



