Windows Update Refused to Work, So I Spoon-Fed it.
TL;WR: Windows update never got past checking for updates. Nothing worked. Used my private WSUS server and spoonfed it 10 updates at a time. Suggested Pairing: Bread Water.
Warning: The following was a holiday experiment turning into a WSUS manipulation rabbit hole. Real research would’ve involved some debugging. All this was probably related to a terminally broken WID or something else that real work would’ve resolved.
I have a laptop to fix. The poor thing was worked over by a ‘power user’. The belligerently ignorant person left their mark on everything they could. They installed every browser, installed Avast (but left defender running… somehow), pretty much everything on ninite, pirated keys (even though it had the oem keys), rosetta stone (again, pirated) but without any language packs, etc. etc.
The worst though was killing windows update. Something about the government using it to spy on people. Ironically the ‘expert’ left telemetry on full bore.
I digress. I tried everything on this computer. Windows update would stick on checking for updates and never return. It hadn’t been updated in two and a half years so I expected a delay, but not 20 hours.
A packet cap was showing that wuau was reaching the Microsoft servers and after 20 or so packets it received a 200 OK then just stopped responding. Then all of the TCP connections would timeout and close. Not. A. Peep. All it would do is poke a few reg values for the wuau gpo settings.
I suspected that it was vaguely related to the kind of max server round trips problem (0x80244010). That’s an issue involving too many metadata requests or too much metadata period. I didn’t get those errors specifically but who knows how many bugs there were in the totally stock and probably pirated servicing stack.
First up I tackled the update agent (Here for win 8.1/ Server 2012 R2, watch for the prerequisites). Which in this case happened to be pretty much the last update it received before wuau got the ‘Old Yeller’ treatment.
I ran the Windows update diagnostic cab (Here) and each time it did its thing but the problem never went away. Stopping the windows update service (wuauserv) and deleting the
\Windows\SoftwareDistribution\ folder (data store that catalogues the updates and stores update info) would get it started again but the same problem kept popping up.
After checking AV, other network apps, other file apps, running a procmon trace, sfc, dism, and little Christmas Consuming I decided to try one last thing before a clean boot. I mean, if too many available updates is the problem, can we show it fewer updates?
I popped onto my home WSUS server, added a computer group for this poor laptop, and added the windows 8.1 updates to the catalogue.
- I set up two empty computer groups.
- Went through and picked out the updates I wanted, approved them for the first empty group to start the download
- Blindly made the tweaks Here as per cargo-cult administration standards.
- On the laptop I updated the GPO to point at my wsus server and added it to the second empty computer group.
- As updates came in (starting with top of tree/cumulative monthlies) I added approvals for the second group in batches of 5 (8-10 at a time later).
- Popped on the laptop and started the updates. THEY WORKED.
After all that I got too much ego going and decided to try approving 20 updates. No dice, I had to wipe the SoftwareDistribution cache again just to get it working. Finally I got it up to date, 8 updates at a time… Never did figure out why, it’s on the slate for a reinstall soonish. If you’ve got any ideas before I do the reinstall I’m open to taking a look, let me know.
Post Script Update
She’s long gone, few caps messily popped shortly after one of the LCD ffc’s gave out and it was relegated to the scrap bin.