|
The first system was a Gateway, the second was a Dell - but based on
what I've read about others with this problem, it can be any system at
all. In the first case, I put in a CD with XP SP3 to do all the updates
at once. No good, windows update was broken. In the other case, I tried
a small step - first to XP SP2, then up to XP SP3 - and it was broken as
well.
Here is the the screen that comes up - click on any thumbnail image
to bring up the full size version:

They suggest a lot of things - like turning on automatic updates,
then running the command to force updates now (wuauclt /detectnow), and
none of those things worked for me. Others suggested manually
downloading the Windows Update Client and forcing the install by running
it from the command line with /wuforce to force the update to happen,
some said they were calling
Microsoft support, and other things - none of which fixed the problem
for my two laptops.
What is
happening
The short version is the install for Windows Update for some reason
isn't installing all the files it needs to run. It is leaving a couple
of older files as dust bunnies, and the whole update process is failing
due to the new code trying to talk to an older .DLL file. The fix, until
Microsoft fixes it for real, is to manually copy the files. A catch is
those files are in use, so you'll have to do some DOS prompt type
commands to make it so you can update those files.
Don't worry - I'll walk you through everything.
What you
will need:
Download a copy of the Windows Update 3.0 install package. I found it
at:
http://go.microsoft.com/fwlink/?LinkID=91237
or, I also found a pointer to this download at:
http://support.microsoft.com/kb/932494
That and some bravery to do some command prompts and you'll be all
set!
Fixing
Windows Update!
With the link downloaded, run it but don't go through the install. A
screen will come up that shows what directory the files are expanding
into - note that directory name or at least the first 2-3 characters of
it as you'll see here:

So in this example, which I captured after I'd already done the
procedure, the files were expanded into the directory c:\41a<other stuff
deleted>. We don't care about all that stuff, just enough of it we can
find that directory. When all the files are expanded, you'll see the
next screen about installing the update agent:

DO NOT PRESS NEXT OR CANCEL YET! Just let that window alone. If you
cancel or hit next, your temporary files will be deleted before you can
copy them to someplace else.
Now go to your DOS prompt by hitting Start->Run->CMD.EXE
Go into the directory listed by typing cd \ThoseFirstTwoOrThreeCharacters
and then hitting the <TAB> key to auto-complete the rest of the
directory name. So in the example above, you would type:
cd \41a<TAB><ENTER>
Note: <TAB> represents the tab button, not a less than sign, capital
T, capital A, capital B, greater than sign. Same thing with <ENTER>
You'll now be at a DOS prompt inside the directory with all those
nice files expanded.
Make a directory to save them:
mkdir c:\junk
Then copy the files to that junk directory:
copy *.* c:\junk
If you've already installed this update prior to searching and
finding this article, you can hit the CANCEL button in the Windows
Update Agent Installer window and completely skip the next paragraph.
If you haven't installed the update yet, hit Next and let the update
proceed forward. If Microsoft fixes the problem, you should be able to
go to windowsupdate.microsoft.com and see everything working nicely. If
it doesn't work yet, continue on.
In my case, the directory created with c:\0e6b22a4344a25.... so
you'll see my screen shots reflect that directory tree. Plus I made my
temporary directory C:\temp\wu - it really doesn't matter where you copy
them, as long as it is a place you just created so nothing else is
inside as you'll be wiping that temporary location out at the end of
this.
Stop the auto-update service by typing:
net stop wuauserv

I ran this from the windows\system32 directory, but you can run it
from anywhere.
Here are fragments of the two directories, side by side. On the left
are the good files as they come from Microsoft. On the right are the
files as installed in the c:\windows\system32 directory. I highlighted
the two files that weren't updated by the installer with red arrows.
These have to be copied by hand.

On the left you can see wuauserv.dll is dated 8/6/2009 and has a size
of 22,744 - on the right it is older, 4/14/2008 and only 6,656 bytes.
Similar item with wuweb.dll - new on the left, old on the right. Both
these files need to be copied from your temporary directory to
c:\windows\system32

Since you are inside your temporary directory, you can type the first
line and copy wuweb.dll:
copy wuweb.dll c:\windows\system32
If you get an error saying the file is in use, close all your
Internet Explorer windows. The Windows Update website likely has one of
those DLL files open.
You can see I had that error with wuauserv.dll - so for that, I had
to rename the file first, then I could copy it. So type:
rename c:\windows\system32\wuauserv.dll wuauserv.dll.old
copy wuauserv.dll c:\windows\system32
Right after that, without even a reboot, I was able to go to Windows
Update and it worked!

The system did a full suite of updates, updated its updating engine,
and is running fine.
When you are done, you can delete that temporary directory you saved
all the files into.
Conclusion
------
If you found this helpful (or not),
please send me a brief email -- one line will more than do. If I see people
need, want, and / or use this kind of information that will encourage me to keep
creating this kind of content. Whereas if I never hear from anyone, then why
bother?
I can be reached at:
das (at-sign) dascomputerconsultants (dot) com
Enjoy!
David Soussan
(C) 2011 DAS Computer Consultants,
LTD. All Rights Reserved.
|