Why Windows Update always failed, and how to fix it?

Most of the time, Windows Update is something invisible to many PC users.  Maybe you would notice the balloon pops up from the system tray once a month tells that the smart Microsoft software has done the update for you.  But sometimes, especially on the 10+year-old Windows XP machines, this could be a headache, even to a technical person like me.

Last time I wrote about this was 3 years ago, in January 2010 – “Where can I find netfx.msi when patch .NET Framework 1.1”.  It was something about .NET Framework.  Since then, I saw more and more such frameworks in my PC, in different versions.  When I open Control Panel – Add or Remove Programs, there are Microsoft .NET Framework 1.1, 2.0 SP2, 3.0 SP2, 3.5 and their Language Packs, and 4 Client Profile.  The lower versions are not automatically upgraded to a higher version, they are just hanging there, being patched.  I don’t think they really have backward compatibility, they are just many different frameworks in your PC, more or less like Java or Chrome that need to update once a while to be less vulnerable to the riskier cyber-world.

This February, the update problem came back.  Since mid-month, the famous Microsoft patch week, there are two error messages pop up every time when I turn on my PC, then leave a yellowish shield in system tray, telling me my PC could be hacked at any time.  I tried on one weekend, removing and reinstalling all .NET Framework things, as much as I could.  Some of them even didn’t allow me to uninstall, because the temporary folder that it left during the installation was missing.  I gave up and just sought for workarounds when I thought about the yellowish shield in system tray.

Since mid-March, there is one more warning when I turn on my PC – Silverlight, another framework or “platform” on top of the Windows operating system.  I need to fix them although they just gave me one broken yellow shield in the system tray.

Here are another trace that I can also see in Event Logs:

Event Type:    Error
Event Source:    Windows Update Agent
Event Category:    Installation
Event ID:    20
Description:
Installation Failure: Windows failed to install the following update with error 0x80070643: Security Update for Microsoft .NET Framework 2.0 SP2 on Windows Server 2003 and Windows XP x86 (KB2789643).

Event Type:    Error
Event Source:    Windows Update Agent
Event Category:    Installation
Event ID:    20
Description:
Installation Failure: Windows failed to install the following update with error 0x80070643: Microsoft .NET Framework 3.5 Family Update (KB959209) x86.

Event Type:    Error
Event Source:    Windows Update Agent
Event Category:    Installation
Event ID:    20
Description:
Installation Failure: Windows failed to install the following update with error 0x80070643: Security Update for Microsoft Silverlight (KB2814124).

Actually, Microsoft knows this, and it silently released the fix – Microsoft .NET Framework repair tool.  You can find the KB here “Version 2 of the Microsoft .NET Framework repair tool is available”.  although the link in the KB just leads you to the version 1.0 download, it does the job.  I just ran the tool, it told me to leave it on and try to reinstall the .NET Framework which I downloaded a month ago.  The updated tool should support .NET Framework version 2.0, 3.0, 3.5 and 4.

For Silverlight, there is a little more work to do.

In this Microsoft Community thread, the best answer is the following.  I tried it and successfully reinstalled Silverlight, then patched it with the latest update.

1. In the Control Panel, open the Add/Remove Programs applet (Programs on Vista) and uninstall Microsoft Silverlight if it is shown as installed by clicking on it and then clicking Uninstall or Remove. If you get an error on this step (for example a dialog saying that the .msi file cannot be found), just continue on to the next step

Note :Be careful that you only delete what I say to delete below. If you delete too much by accident it is quite likely that you will break something and there is no way to undo accidental changes

2. ClickStart, and then click on Run.

– Typeregedit in the Run box and click on OK.

– In Registry Editor expandMy Computer and then expand

HKEY_CLASSES_ROOT and navigate to INSATLLER

– ExpandINSTALLER, and then expand PRODUCTS

– UnderPRODUCTS right-click{D7314F9862C648A4DB8BE2A5B47BE100} andthen clickDelete

 

3. Try updating or installing Silverlighthttp://www.microsoft.com/getsilverlight ,

if this step failsjust continue on to the next step

4. Using regedit, navigate to HKLM\Software\Microsoft\Silverlight and delete the key

5. From an administrator command shell you can do this by running:
reg delete HKLM\Software\Microsoft\Silverlight /f

6. Using Windows Explorer, delete the “Microsoft Silverlight” directory from under Program Files.

From an administrator command shell on anx86 you can do this by running:
rmdir /s /q “%ProgramFiles%\Microsoft Silverlight

If you are on a64-bit version of Windows, substitute ProgramFiles(x86):
rmdir /s /q “%ProgramFiles(x86)%\Microsoft Silverlight

7. Try updating or installing Silverlight http://www.microsoft.com/getsilverlight

8. If the issue is related to playing Media Streaming using third party players from any website then try resetting the Internet Explorer to defaults

There is also a Microsoft KB describes in more detail on how to fix the Silverlight installation issues: http://support.microsoft.com/kb/2608523

Okay, that is what happened in this long weekend.  I think before such things happen again, I will upgrade my 6 year old PC to something more modern, like Windows 7 or 8.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s