To be honest, I started this post so long ago, I needed to check what I told you before.

I finally fixed 99.999999% of all graphical/other crashes/hangs/general instabilities.  The remaining trace problems I put down to the fact that I now overclock my machine and I have a minor (as in crash to desktop or random unexplained event) every once in….actually, I can’t remember when the last one was.  It’s pretty much fixed.  I’ve even been able to reinstate stuff like the Catalyst Control Panel (so I can overclock). The key change that solved everything was…

Turning off the Aero interface.  For those who don’t know, Aero is what makes Vista more flashy than XP.  So it’s no longer more flashy than XP, and I don’t really care.  I don’t know why Aero is so unstable, and I have no interest in finding out.  It’s off now, and most of the time I don’t even remember that it’s off.  The only time I miss Aero is when I want to preview a window on the taskbar, but it’s not exactly a show-stopper.

Anyway, as a grand finale to my abortive trilogy, I give the tenous opening for a further sequel.  The last remaining annoyance is Windows Update.  When I set the computer up I decided to separate the Program Files folder from the System folders.  So I have C:\Windows and D:\Program Files.  I went through the registry with a fine-tooth comb to weed out all references to C:\Program Files and fix them.

And it’s all good.  Except that Windows Update now typically fails everytime I try to update.  For most updates I can download and install them manually (even if it is tedious), but there are some that will still refuse and it took ages to find out why.  I can’t even remember where I found this forum post that explains everything, but it’s here in its entirety for your perusual.

NB – The one thing that isn’t really explained is whether you can remove the temp patch files afterwards.  The explanation of HardLink suggests you can’t but I didn’t have any problem with it except that I couldn’t delete certain files for Windows Defender while it was running, and after I did delete them, Windows Defender wouldn’t start (which wasn’t a great loss for me).  My suggestion, if anyone ever tries this, is to leave them alone.

an email address that I deleted  

Posts: n/a

Re: WindowsUpdate Error 80070011 on every update


Everyone! I have successfully installed KB931099 with ProgramFiles on
D:.Please follow these instructions at your own risk. If you aren’t
feeling confident, I recommend you back up your system.

Pre-requisites: You need to be an administrator on the machine.

Here’s what you do:

– Start Windows Update.
– Click “Check for updates” in the top left corner.
– Click the “View Available Updates” link.
– Select KB931099 ONLY. Deselect any other patches that have been
failing in the past.
– Click Install.

Windows Update now downloads the patch.

– Do ***NOT*** restart the computer. Close Windows Update.

Windows Update also created C:\Windows\WinSXS\Pending.XML which you
now need to modify. To make your life difficult, the SYSTEM account
owns the whole WinSXS folder so not even admin’s can modify the files
inside… unless you take ownership of the folder. To do that:

– Open up an explorer window and browse to C:\Windows\WinSXS
– Right-click on “Pending.XML” and select properties.
– In the dialog, click on the “Security” tab
– Click “Advanced” down the bottom
– In the new dialog, select the “Owner” tab. Notice the owner is
SYSTEM.
– Click “Edit”.
– In the “Change Owner To” list, select the user account you are
currently using (you must be an admin)
– Click OK. Some warnings might pop up. Just ignore them. Close the
“Advanced Security Settings” dialog.
– Back on the “Pending.XML Properties” dialog, you should now be able
to give yourself full control of the file.
– Click the “Edit” button.
– In the new dialog, click “Add” and enter your user name. Click OK.
– Your user name should now appear in the list. Select it and check
the “Full Control” button.
– Click Ok, and Ok (closing any warning popups).

Now you fully control Pending.XML.

– Open “Pending.XML” in notepad.

Now onto some explanation:

Windows Update downloads the patches into C:\Windows\WinSXS. You will
notice in Pending.XML several “HardLinkFile” tags in the XML file.
The source is “\SystemRoot\WinSxS\…” followed by a long folder name
containing the patch files. Your system root should be “C:\Windows”
but it could be different if you chose to install Windows on another
drive other than C.

If your program files is on a drive other than the system drive, the
HardLinkFile operation fails. The HardLinkFile operation acts like a
fake-copy. It links the destination with the source file without
actually copying the file content. The source and destination must be
on the same partition.

Looking at Pending.XML again:

<HardLinkFile source=”\SystemRoot\WinSxS\………”
destination=”\??\D:\Program Files\………” … />

this is bound to fail.

However, fixing this problem is not hard. The HardLink operation will
succeed if the patch files are on the same drive as Program Files.

– Note the long cryptic folder name from the source from after the
WinSxS. On my computer, this is “x86_security-malware-windows-
defender_31bf3856ad364e35_6.0.6000.16420_none_55c0 ce805b18c568” but it
might be different on yours.
– You need to locate this physical folder in the WinSxS folder. Once
you find it, copy it to “D:\Temp” (NOTE!!! If your program files is
on another drive, say X:, then this will be X:\Temp for you).

Easy enough? Still have Pending.XML open in notepad? Now you need to
redirect the instructions to use the files on D: rather than C:… but
WAIT! Look at the file closely and you’ll notice some other
instructions.

On my computer, I also moved “ProgramData” to D: so one thing I
noticed is there is a HardLinkFile instruction that uses “\??\C:”. I
had to replace this with “\??\D:”. You will also notice 2 MoveFile
commands for this patch. They both move files from a folder under
SystemRoot to another folder under SystemRoot. This instruction
should work without any modifications so we shouldn’t touch them.

– The safest way to do this is to do a Replace (in notepad). Replace

HardLinkFile source=”\SystemRoot\WinSxS”

…. with…

HardLinkFile source=”\??\D:\Temp”

This ensures the MoveFile lines are not affected.

If you are trying to adapt these instructions for other patches, make
sure you check the file for other oddities.

– Save and close Pending.XML.
– Reboot the machine.

After the machine is booted up, check C:\Windows\WinSxS\POQExec.log
for any errors. If an error occurred, you should also notice the tool
tip window saying “Windows Update Failed” (or something like that).
If that’s the case, you either did something wrong, or I left
something out. Either way, you don’t have to worry too much as
Windows Update uses a transaction system. If any instruction fails
(even if after an instruction succeeded), none of the changes in the
entire patch take place (so you are free to try again).

Just to make sure, start Windows Update and click “Check for
Updates”. If KB931099 no longer appears… congratulations, you have
just worked around one of the most annoying limitations of Windows
Update.

Advertisements