When an update is stuck at 0% or keeps asking for a restart, don't delete any files. First, find out what is stuck, such as the download, the install, or a pending restart. Then, use the safest fix for that case. This guide shows how to fix Windows Server updates stuck without breaking your server.
Run all commands in PowerShell or Command Prompt as Administrator. These steps work on Windows Server 2016 and newer.
Create a Backup Before You Start
Before you start to change anything, take a snapshot or backup from your VPS panel, or a backup on your own server.
Check free space on C with Get-PSDrive C. Keep at least 10 GB free.
Also, make sure you can reach the server console, not only RDP. Updates can stop RDP for a few minutes during a restart.
Check Which Update State Is Stuck on Windows Server
Each state looks different and needs a different fix. Finding the state is the fastest way to fix Windows Server updates stuck. Check these three places:
- Update history: Go to Settings > Windows Update > Update history. Or run
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10.
- Services: Run
Get-Service wuauserv, bits, cryptsvc, TrustedInstaller.
- Event Viewer: Open Applications and Services Logs > Microsoft > Windows > WindowsUpdateClient > Operational.
| State |
What you see |
Key events and signs |
| Stuck download |
0% for a long time, no disk activity |
Event 44 (download started) with no end. Event 31 means the download failed. |
| Stuck install |
"Installing" or "Working on updates" never ends |
Event 43 (install started) with no result. Event 19 means success, and event 20 means failure. |
| Reboot pending |
Update shows "Restart required" even after restarts |
Event 21 (restart required). Registry keys show a pending restart. |
Event IDs may not be the same on every Windows version, so read the message text as well.
How to Fix Windows Server Updates Stuck by State
Now that you know which state is stuck, use the fix below that matches it. Start with the simple steps and move on only if the problem stays.
If the Download Is Stuck at 0%
A download that stays at 0% is usually a network or service problem, so this is the easiest case to fix Windows server updates stuck. Check these in order:
- Test the connection:
Test-NetConnection -ComputerName www.microsoft.com -Port 443.
- Check the proxy:
netsh winhttp show proxy. If your server uses WSUS, make sure it can reach the WSUS server.
- Check the date, time, and time zone. A wrong clock breaks TLS and update checks.
- Restart the related services:
Restart-Service bitsRestart-Service wuauserv
- Look at the log. Run
Get-WindowsUpdateLog. It builds a readable WindowsUpdate.log file on your desktop.
If the disk or network is busy, wait. A big update can take a long time on a small VPS.
If the Install Is Stuck
First, check that something is still happening. Open Task Manager and look for TiWorker.exe or TrustedInstaller.exe using CPU or disk. If they are active, the install is still working, so wait at least 60 to 90 minutes.
If there is no activity for hours:
- Open the console and read the screen.
- Check the System and Setup logs in Event Viewer for errors.
- Check the servicing log at
C:\Windows\Logs\CBS\CBS.log. Search for the word error.
- Only then restart the server from the panel or with
shutdown /r /t 0. Windows will try to roll the update back during the restart.
Don't power off the server while it shows "Don't turn off your computer." Do it only if the screen has been frozen for hours and the disk shows no activity.
If a Reboot Is Pending
Check these common signs of a pending restart:
Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -ErrorAction SilentlyContinue
If you see True or a value, Windows still needs a restart. Some install programs also leave PendingFileRenameOperations behind, so it can be a false alarm. Don't edit these keys manually. Restart the server with a warning message:
shutdown /r /t 120 /c "Restart for Windows updates"
If the flag stays after a restart, run the repair steps below.
Repair Windows Server Update Safely
Use this order to fix Windows Server updates stuck with the lowest risk. Each step is safe and keeps your update history.
First, you must restart the update services using the commands above.
Then, check the Windows component store for errors:
DISM /Online /Cleanup-Image /CheckHealthDISM /Online /Cleanup-Image /ScanHealth
CheckHealth is a quick check. ScanHealth is deeper and takes several minutes.
Next, repair it if DISM reports damage:
DISM /Online /Cleanup-Image /RestoreHealth
DISM downloads good files from Windows Update by default. It can look stuck at 20% or 40%, which is normal, so wait before you cancel it.
Run this command to repair Windows system files:
Now you can restart the server, then check for updates again.
If the server cannot connect to Windows Update, use Windows installation files or files from a working server with the same Windows version:
DISM /Online /Cleanup-Image /RestoreHealth /Source:\\SERVER\c$\windows /LimitAccess
The /LimitAccess option stops DISM from using Windows Update. The source must match your Windows version and build.
Rename SoftwareDistribution If Updates Still Fail
If the earlier steps did not work, try renaming the SoftwareDistribution folder. This keeps a copy of the old update cache instead of deleting it. Remember to use this step only after trying the other fixes.
net stop wuauservnet stop bitsren C:\Windows\SoftwareDistribution SoftwareDistribution.oldnet start bitsnet start wuauserv
Restore the Server After a Failed Update
If an update causes problems, you may need to remove it or restore a backup. Check which update caused the issue before making any changes.
Uninstall the Windows update with the actual update number you want to remove:
wusa /uninstall /kb:1234567
Some updates cannot be removed with wusa. If that happens, list the installed packages:
DISM /Online /Get-Packages
Find the package for the update you want to remove. Then run this command, replacing <name> with its full package name:
DISM /Online /Remove-Package /PackageName:<name>
Restoring your snapshot is another way to return the server to its earlier state.
Do not use /ResetBase while fixing update problems. It stops you from removing updates that are already installed.
Keep Windows Server Accessible During Updates
Before updating a remote server, make sure you have another way to access it if RDP stops working.
- Keep the web console open before you restart. It works even if RDP is down.
- Check that Remote Desktop is set to start with
Windows: Get-Service TermService.
- Check that the firewall allows RDP:
Get-NetFirewallRule -DisplayGroup "Remote Desktop".
- Restart during a quiet time, and avoid restarting all servers together.
- Wait 10 to 15 minutes after the restart before you assume it is broken. Updates finish during startup.
A Windows VPS with a web console and panel reboot controls is easier to recover when RDP stops responding.
Conclusion
To fix Windows server updates stuck, you must check whether the update is stuck downloading, installing, or waiting for a restart. Start with simple fixes, then use DISM and SFC if needed. Remember to keep a backup and console access ready before making changes.
Also, a dedicated server with IPMI lets you restart the server and view its screen remotely, even when Windows is not working.
We hope you enjoy this troubleshooting guide on Windows server updates stuck.