I recently did a fresh install of Windows 7 Ultimate x64 on my laptop, and Windows Update successfully updated the system to SP1. Now, however, Windows Update runs forever without finding any updates. It ran for almost 24 hours the first time I ran it after installing the Service Pack, but the search bar just scrolls continuously without finding any updates.
Here's what I've attempted so far.
First attempt
First, I followed the instructions in KB 971058 and downloaded the automatic "FixIt" tool `WindowsUpdateDiagnostic.diagcab'. I run this as administrator and received this message:
The error code Windows Update error 0x80070005
is an "Access Denied" error, according to this page. What's odd is that if I click View Detailed Information, the tool says the error was corrected; see the image below.
Second attempt
I rebooted and ran Windows Update again. After 6 hours with no luck (the search bar is still running) I cancelled it. Just to be safe, I ran the System File Checker from an elevated command prompt to see if there were any corrupted files:
sfc /scannow
but it said "Windows Resource Protection did not find any integrity violations" so all looks normal on that front.
Third attempt
Another Microsoft link suggested another FixIt tool, so I downloaded that ("MicrosoftFixit50123.msi") but it's just a generic Fixit tool, apparently. I run the MSI and it shows me this:
The buttons lead to generic Microsoft links, but nothing specific to Windows update.
Fourth attempt
After yet another reboot and yet another hour of Windows not completing its search for updates, I figured it was time to follow the manual instructions in KB 971058. I opened an elevated command prompt and followed these steps:
Stop the BITS service, the Windows Update service, and the Cryptographic service.
net stop bits net stop wuauserv net stop appidsvc net stop cryptsvc
The BITS and appidsvc weren't running (maybe that's the problem?) but the other two were stopped successfully.
Delete the qmgr*.dat files:
Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
No problems in this step.
Rename the software distribution folder backup copies
Ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak Ren %systemroot%\system32\catroot2 catroot2.bak
Reset the BITS service and the Windows Update service to the default security descriptor.
sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU) sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
Both of these commands returned
[SC] SetServiceObjectSecurity SUCCESS
.Change to the system32 directory and reregister the BITS and Windows Update files
regsvr32.exe atl.dll regsvr32.exe urlmon.dll regsvr32.exe mshtml.dll * regsvr32.exe shdocvw.dll * regsvr32.exe browseui.dll * regsvr32.exe jscript.dll regsvr32.exe vbscript.dll regsvr32.exe scrrun.dll regsvr32.exe msxml.dll ** regsvr32.exe msxml3.dll regsvr32.exe msxml6.dll regsvr32.exe actxprxy.dll regsvr32.exe softpub.dll regsvr32.exe wintrust.dll regsvr32.exe dssenh.dll regsvr32.exe rsaenh.dll regsvr32.exe gpkcsp.dll ** regsvr32.exe sccbase.dll ** regsvr32.exe slbcsp.dll ** regsvr32.exe cryptdlg.dll regsvr32.exe oleaut32.dll regsvr32.exe ole32.dll regsvr32.exe shell32.dll regsvr32.exe initpki.dll ** regsvr32.exe wuapi.dll regsvr32.exe wuaueng.dll regsvr32.exe wuaueng1.dll ** regsvr32.exe wucltui.dll ** regsvr32.exe wups.dll regsvr32.exe wups2.dll regsvr32.exe wuweb.dll ** regsvr32.exe qmgr.dll * regsvr32.exe qmgrprxy.dll regsvr32.exe wucltux.dll regsvr32.exe muweb.dll ** regsvr32.exe wuwebv.dll
Commands marked with one asterisk failed with this error:
The module "module_name.dll" was loaded but the entry-point DllRegisterServer was not found. Make sure that "module_name.dll" is a valid DLL or OCX file and then try again.
Commands marked with two asterisks failed with this error:
The module "module_name.dll" failed to load. Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files. The specified module could not be found.
Reset Winsock
netsh winsock reset
This command outputs
Successfully reset the Winsock Catalog. You must restart the computer in order to complete the reset.
so I rebooted. After the reboot, I ran the next command on the list:
netsh winhttp reset proxy
Then I restarted all of the services that were stopped before:
net start bits net start wuauserv net start appidsvc net start cryptsvc
I rebooted again and ran Windows Update. Same result. I let it run for two hours this time, but it kept searching for updates, so I posted here.
I feel like I've tried everything. The Windows disk I used to install is genuine, and I've used it to do fresh installs on this laptop before without errors like these. What else can I try? Pardon the commentary, but after all this I'm at my wits' end with Windows Update and I'm almost completely out of patience.
I have also run a full system malware scan using Microsoft Security Essentials, which turned up nothing, so it's unlikely this is malware-related.