One of the more frustrating aspects of maintaining Microsoft Windows PCs is when Windows Updates fail without a clear reason. Every IT professional has run into this issue at some point, and it can quickly become a time-sink of reboots, log review, and command-line digging. After working through another challenging case, I’ve compiled a list of effective troubleshooting steps and lessons learned that might save you time the next time Windows updates refuse to install.
Start with the basics
Begin with the standard checks:
- Reboot the system.
- Ensure there’s adequate free disk space.
- Clear the Windows Update cache.
- Verify that all Windows Update services are running properly.
- Run
sfc /scannowto check for system file integrity. - Run
dism /online /cleanup-image /checkhealth. If corruption is detected, usedism /online /cleanup-image /restorehealth. - Manually download and install the failing update from the Microsoft Update Catalog.
If none of these resolve the problem, you will need to dig deeper.
When basic tools aren’t enough
In one particularly complex case, repeated failures pointed toward a corrupt driver or a duplicate language pack. Using dism /online /get-packages | findstr LanguagePack, I located and removed the extra language pack with dism /online /remove-package /packagename:<PackageName>.
Unfortunately, that wasn’t the full fix. Reviewing the CBS.log revealed messages like “Does not have a winner,” meaning there were multiple versions of the same file confusing Windows about which one to update.
To investigate further, I ran dism /online /Get-packages /Format:Table >a.txt & a.txt.
This showed one update package stuck in a “staged” state while showing me that other cumulative updates were never installed. Removing the staged package resolved the original error message I received, but it did not resolve the issue of the PC not installing updates.
The final solution
After sending logs to Microsoft, they identified additional corrupt driver files. Their support tech suggested running RUNDLL32.exe pnpclean.dll,RunDLL_PnpClean /DEVICES /DRIVERS /MAXCLEAN.
This command cleans up old or unused device and driver packages. Once completed, the Windows Update process finally ran successfully.
Final thoughts
Windows Update failures can stem from a wide range of causes from missing files, corrupt drivers, corrupt operating system components, or duplicate packages. A structured approach, combined with tools like DISM, SFC, and driver cleanup utilities, can often uncover the root cause and save hours of feeling like you’re chasing your tail.
This publication contains general information only and Sikich is not, by means of this publication, rendering accounting, business, financial, investment, legal, tax, or any other professional advice or services. This publication is not a substitute for such professional advice or services, nor should you use it as a basis for any decision, action or omission that may affect you or your business. Before making any decision, taking any action or omitting an action that may affect you or your business, you should consult a qualified professional advisor. In addition, this publication may contain certain content generated by an artificial intelligence (AI) language model. You acknowledge that Sikich shall not be responsible for any loss sustained by you or any person who relies on this publication.