Saturday, November 15, 2008

How to fix Windows Update Error 0x8ddd0004

I just spent about half a day fixing up a computer that had been struck with the AVG user32.dll false positive, where most of the time was taken up by figuring out why the hell WindowsUpdate wouldn't run. It kept stopping the scan, with the error message 'Error 0x8ddd0004' and some useless instructions for fixing it.

Here are some possible solutions, if you do all of these it is guaranteed to work. After each step close all browsers and open WindowsUpdate to see if it worked yet.

Make sure you have Administrator rights


Perhaps the simplest step of all. Go to Start > Control Panel > User Accounts and make sure the account you're currently logged in as is classified as 'Administrator'.

Update Flash


Since it's the easiest, try this first. I have no idea why, but this one worked for me. Head over to Adobe.com and click the 'Get Adobe Flash Player' link. If you don't use MSIE for this, make sure you close all browsers and all Flash-enabled programs before you run the manual installer.

While you're there, upgrade to the latest Shockwave Player too by clicking the 'Get Adobe Shockwave Player' link or banner. Again, close all browsers if you use the manual installer.

Re-register all WindowsUpdate DLLs


From Virtual Dr.:
  • Go to Start > Run and type each of the following, hit Enter, Enter again and repeat.
  • regsvr32 JSCRIPT.DLL
  • regsvr32 MSXML3.DLL
  • regsvr32 ATL.DLL
  • regsvr32 WUAPI.DLL
  • regsvr32 WUAUENG.DLL
  • regsvr32 WUAUENG1.DLL
  • regsvr32 WUCLTUI.DLL
  • regsvr32 WUPS.DLL
  • regsvr32 WUWEB.DLL

Manually reinstall the WindowsUpdate agent


To reinstall the WindowsUpdate files, run this installer from Microsoft:
http://download.windowsupdate.com/v6/windowsupdate/redist/standalone/WindowsUpdateAgent20-x86.exe (64-bit version here)

Let WindowsUpdate reinstall the ActiveX component


I put this one last, because I have a feeling it resets much more than just the WindowsUpdate ActiveX component. Use with care.
To do this, you first need to disable the two WindowsUpdate services. Go to Start > Run > services.msc. Select Automatic Updates and click the 'Stop' link. Select Background Intelligent Transfer service and click the 'Stop' link.
Now open Explorer and open the Windows directory. Find the folder 'SoftwareDistribution' and rename it to something like 'SoftwareDistribution_old'.
Go back to the Services window and start both services again.