(Note: If you find this information useful, and it solves your problem, please leave a comment at the bottom of the post, and/or share it via the link below. Thank you.)
Have you run into the Windows Update “infinite loop from hell”? If you have, you know what I”m talking about. You get a Windows update, it installs and requires that you reboot to finish the install. After rebooting, the second part of the install fails, and it uninstalls itself. The next time you try to install Windows updates, the same thing happens on the same update. Repeat ad nauseum.
If you check the Windows update status, it will probably tell you that the error code is “80071aa7″, but give no further information. A search of Microsoft”s site (as of today) yields no further information, and a search of the entire Internet finds plenty of others asking how to solve it, but no one giving a solution.
Well, after 2 long evenings of fighting a Vista laptop which failed to install kb953838 (security update for IE7), I finally found a solution.
First, you need to find the exact file on which the install is failing. In order to do this, you need to examine the file “WindowsUpdate.log”, which is in the “\windows” directory, by running this command:
Then, search (Ctrl-F) for the error number, including a “0x” prefix, such as “0x80071aa7″. You will find a line that looks something like this:
2008-10-06 11:29:23:890 1140 dac Handler Post-reboot status for package Package_for_KB953838~31bf3856ad364e35~x86~~18.104.22.168: 0x80071aa7.
2008-10-06 11:29:23:890 1140 dac Handler WARNING: Got extended error: “POQ Operation HardLinkFile OperationData \SystemRoot\WinSxS\x86_microsoft-windows-i..tocolimplementation_31bf3856ad364e35_6.0.6000.16711_none_fff8e71ba4b3b364\WininetPlugin.dll, \??\C:\Windows\System32\migration\WininetPlugin.dll”
The important thing to notice is the filename at the end. In this case: C:\Windows\System32\migration\WininetPlugin.dll. (Don”t worry about the “\??\” before the filename.)
I have also seen “UnlinkFile” rather than “HardLinkFile”, but the filename was the same in all cases.
If you run a disk scan on drive C: (start / run / “chkdsk c: /f”), it will give you an error on the same “WininetPlugin.dll” filename. Unfortunately, even though is says it fixed the error, it did not. If you immediately run the chkdsk command again, it will give the same error, and tell you it fixed it again.
Typically, in a case like this, I would rename the file out of the way, put another copy there, and retry the install. Unfortunately, there appears to be something “special” about the “c:\windows\system32\migration” directory and/or the “WininetPlugin.dll” file, as I was unable to rename the file out of the way, as even running as administrator, an “access denied” error is given. Even using our old friend, BartPE, the file could not be renamed and/or removed, as the same “access denied” error occurs there as well.
Fortunately, Vista includes the ability to run in a recovery mode, by pressing F8 during boot. The first menu choice will be something like “recover windows”. Don”t worry, it”s not going to ”recover” Windows by wiping the drive and reinstalling it. Rather, it will take you to a special recovery mode of Windows. After booting, you will be given a dialog box with several options. Select “command prompt”. This will open a command prompt window. Don”t worry if you”re unfamiliar with the command prompt — I”ll walk you through it.
First, you need to navigate to the directory (“folder”) in the file you got above, by using the “cd” (“change directory”) command. That is everything up to, but not including, the filename at the end. In this case:
cd /d c:\windows\system32\migration
Now, from within this special recovery mode of Windows, you have the ability to rename to file out of the way:
ren WininetPlugin.dll WininetPlugin.bad copy WininetPlugin.bad WininetPlugin.dll
At this point, running “chkdsk” will find the same error(s) as before, but it will actually be able to fix them:
chkdsk c: /f
Note that now, if you run “chkdsk” a second time, it will not find any errors.
Finally, type “exit” to exit the command prompt window, and reboot the system. You will now be able to install the update and have it successfully complete upon rebooting.