In Superfail, I described a problem afflicting Windows 2000 machines. I believe it has to do with one of the Windows Updates from June, but I can't be sure. It's still affecting people right now.

These are the steps I usually use to fix it:

(edit): 0) Make sure you're using the latest build of Dial-a-fix.
1) Reboot so you're starting with a clean slate.
2) Run all of DAF section #5 (Registration center).
3) Run DAF section #3 (WU/WUAU).
4) Start > Run > rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 %systemroot%\inf\au.inf
(Note: the above command is one huge line — it has been wrapped for easier reading)
5) Immediately merge this .reg file: win2ksvchost.reg
6) Reboot.
7) Try Windows Update again. If it fails, try clicking "Flush SoftwareDistribution" in Dial-a-fix (and answer No) and then try Windows Update again.

Some combinations of the above steps usually fix it. Each machine seems to freak out a bit differently, so your results may vary.

Tags: ,

Comments

23 Responses to “Superfail update”

  1. # Alex White on October 24th, 2006 11:54 PM

    Hello,

    I tried this fix as said twice, but it is still not working. During step 6 "Run DAF section #3 (WU/WUAU).", the DAF status bar just hangs on 'Starting BITS'.

    Basically the problem stems at System Event Notification failing to start, in Services.msc is't status is 'Starting' and never leaves this point. No options are availble to stop, or restart it.

    Any help will be greatly appreciated.

    Alex White
    awhite@eje.com.au

  2. # Jörg on January 5th, 2007 8:47 AM

    Thanks very much!!
    I've been battling with this for some time now and it's now fixed! Your superfail article didn't do it but your dial-a-fix fixed it.
    Cheers!
    Jörg

  3. # Raman on February 27th, 2007 6:51 PM

    Thank you! This process worked for me.

  4. # Raman on February 27th, 2007 8:43 PM

    I spoke too soon in my last comment... it did work but after updating and rebooting Windows Update fails again, with the original problem.

    Redoing the process fixes it again until the next reboot. It seems that after reboot, for some reason my COM+ Event System service fails to start. This prevents System Event Notification from starting, and this prevents BITS from starting.

    Rebooting normally fixes things in Windows, but in this case it is breaking things!

  5. # DjLizard on October 8th, 2007 5:53 PM

    If anyone needs further assistance, visit the Lunarsoft.net forums:
    http://lunarsoft.net/forum/

  6. # Nate Coffey on October 19th, 2007 8:24 AM

    I just wanted to let you know a bizarre things that was happening on computers I'm working with, maybe either fix a potential problem or make a new precaution for using Dial-a-fix on 2000 machines.

    I was working with building some universal computer images that make use of Driverpacks, Sysprep, etc for Windows 2000 Pro. Now, I have been using Dial-a-fix for a little while, and am amazed at how simply you can fix the myriad issues that Windows can run into. So as a step prior to Sysprepping my original install to prepare for pulling the image, I would run Dial-a-fix to ensure that things are registered. I am running everything in the main screen (I don't touch the Tools menu at all) with the exception of verifying the time. The computer is fully updated, so it may exhibit the problem with that June update you are worried about.

    Anyhow, Dial-a-fix is actually creating the Superfail for me. I've tested and retested on my image, using VMWare with snapshots at different stages of my setting it up. I made a snapshot before pretty much everything so I could jump back and forth whenever. Well for the one snapshot, the only step was logging into the computer, running Dial-a-fix and rebooting. Immediately afterwards I had the errors in the System log. Since this, I am no longer using Dial-a-fix on Windows 2000 Pro at all. I'm not sure what exactly is happening, but it has me too worried to use it. On XP I'm quite comfortable as I have never seen the Superfail result from using Dial-a-fix and it has fixed more problems than it has caused.

    And thanks for the program, it really is a wonderful tool.

  7. # DjLizard on October 19th, 2007 10:56 AM

    If you are able to reproduce it, are you able to track down exactly which checkmark initiates the problem? Dial-a-fix calls Microsoft's DLLs and tells them to run their own code, so if this problem can actually be caused by Dial-a-fix, I have to let Microsoft know that one of their DLLs is mis-registering. A horrible example of this is the MSHTML problem I had (that Microsoft created) : http://djlizard.net/2006/03/14/139/

    If you can get it narrowed down I will get the information to Microsoft, but I'm not sure they'll care as Windows 2000 got end-of-life'd. :/

    Also, then I can tell Dial-a-fix to ignore whatever DLL is blowing this up when being used with that version of the DLL.

  8. # Nate Coffey on October 19th, 2007 11:00 AM

    Give me a little bit and I'm sure I can find out.

  9. # Nate Coffey on October 19th, 2007 11:05 AM

    Oh, another thing too... the only registry value that is incorrect is netsvcs. Here's an export of this value:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost]
    "netsvcs"=hex(7):45,00,76,00,65,00,6e,00,74,00,53,00,79,00,73,00,74,00,65,00,\
    6d,00,00,00,00,00

    And so you don't have to pop that into the registry to read it, that's EventSystem ONLY. Let me get back to you on the exact checkmark that breaks it.

  10. # Nate Coffey on October 19th, 2007 11:32 AM

    Ok, I found the specific checkmarks that are breaking. For the WU/WUAU sections, checking "Register WUAU DLLs" deletes the netsvcs value (is that to be expected or maybe that is the bug). It never recreates netsvcs when it reregisters the WUAU DLLs. So when you run Registration center's "Explorer/IE/OE/shell/WMP" it only creates netsvcs with EventSystem and nothing else for the WUAU services.

  11. # DjLizard on October 20th, 2007 12:27 PM

    The bug is in the DLLs themselves - Dial-a-fix calls their DllUnregisterServer and DllRegisterServer functions. This is exactly like the MSHTML bug in that the newer versions of the DLL don't register themselves correctly. I'll file this as a bug with Microsoft ASAP as soon I collect some info and test a bit in my virtual machine.

  12. # DjLizard on October 20th, 2007 12:29 PM

    Aha! I tested Dial-a-fix on a fresh 2000 box and refreshed that area in regedit and it was fine. Then I went to Windows Update and clicked the button to let Windows Update give me a new version of the WU control... and then I immediately ran Dial-a-fix and when I refreshed regedit, netsvcs was gone. I now have the update which causes this problem!

    It's wuaueng.dll and its DllInstallServer function is broken.

  13. # Aaron Wedemeyer on November 8th, 2007 1:07 PM

    So, any ideas how we might get around wuaueng.dll?

    Yeah, I didn't think so. . .

  14. # DjLizard on November 8th, 2007 3:22 PM

    What's with the flippant attitude? Do I owe you something? Yeah, I didn't think so. . .

    Microsoft controls wuaueng's Dll* functions, not me.

  15. # Nate Coffey on November 8th, 2007 6:20 PM

    The workaround is exactly what he posted in the steps above. He's correct, he has no way of changing how the DllRegisterServer works, and until Microsoft updates it (IF they update it, then I would strongly suggest you just never run #3 on a Windows 2000 computer. He could automate the steps above in the program, but (I'm sure DjLizard agrees with this statement) that is defeating the purpose of this program. The whole idea is to have this program initiate built-in Windows API. The only thing that maybe could be done is to do a check for if the OS is 2000 and disable #3 by default and give a prompt asking if the user is sure they want to go ahead and provide a link to here so they know what they are getting themselves into should they ignore the warning.

  16. # DjLizard on November 8th, 2007 7:47 PM

    Nate's right about the API stuff. Dial-a-fix fixes your system by telling your system to fix itself. For example, when you choose "Reinstall " from the tools menu, it calls rundll32 and hooks into setupapi.dll with an INF from your own system as its main argument (as you can see from its help pane).

    I had already filed this as a bug with Microsoft, but the unofficial response (from a Microsoft employee not on the WU team) is that it won't be fixed because it's Windows 2000 which was end-of-lifed. I believe this to be untrue however because Windows Update for Windows 2000 has not been end-of-lifed and Windows Update is the one that pushes the buggy DLL. Well, even if it is true that they won't fix it, I believe that they have an obligation to.

    I'm eagerly awaiting a response from an engineer on the Windows Update team.

    Also, I did plan on having Dial-a-fix try to detect and avoid this (and insert the missing netsvcs key if necessary) but I haven't had a whole lot of free time to work on Dial-a-fix. I did exactly this, however, with that MSXML bug a while back. It warns you if it notices the buggy version of the DLL.

    Before anyone else trolls, be sure to remember that Dial-a-fix is free and I work on it in my spare time. (If you don't like it, don't use it.) My life priorities list doesn't have Dial-a-fix very high on it. Doing my best and having a roof over my family's head and food on the table comes first.

    Recently I have nailed several bugs (that are mine) in Dial-a-fix and plan to release a point-release of DAF as soon as I get some of the more egregious stuff fixed.

    Dial-a-fix can be 1000% smarter than it is and I'm always thinking of ways to improve it. Whether I actually get the time I desire to improve on it is not really up to me. :(

  17. # DjLizard on November 8th, 2007 7:49 PM

    Oh yeah, and the reason I do recommend to run #3 (like the blog post says) is that most people who download Dial-a-fix are doing so to fix a Windows Update issue. The other things that #3 does are necessary to fix Windows Update, even though wuaueng will inevitably break your netsvcs key as mentioned further above. Run #3 anyway since you need Windows Update to work, and then fix what wuaueng does by merging the .reg and restarting.

  18. # Nate Coffey on November 12th, 2007 1:26 PM

    So with all that said..... you done yet?

    ;)

  19. # c on March 2nd, 2008 10:20 PM

    It won't get fixed, as W2K is way past bug-fix and into extended support. And the problem isn't the .dll itself, it's in setupapi, and that wasn't actually changed until XP. I wouldn't suggest doing this on a 2K box unless you already have the .reg file ready to merge.

  20. # Dennis on July 24th, 2008 8:53 AM

    What genius!!! I worked on this for days — tracking one element to another. And Like all the others poured over the MS Knowledge-base and Google searches. And then I found your answer — such genius! Now if I could just figure out why the DCOM service was also obliterated for my registry, I'd even be more happy. I don't have another 2000 installation from which to copy the relevant keys — tried using XP's, so far without success. I shall plod on. Thanks heaps!

  21. # Gary on October 9th, 2008 10:55 AM

    I can tell you that this saved me days, if not weeks, of troubleshooting.

    Thank you very much

    Gary

  22. # Jason on November 4th, 2008 11:49 AM

    One word... Wow!

  23. # linda arnold on November 27th, 2008 7:07 PM

    is there a fix for the same problem for xp pro sp2. microsoft was "attached" to my machine to no avail. each time i reboot, i have to restart the services manually to get on the net. id error 4609 among others.

Leave a Reply

Comments are moderated.

If you use the same email address you used in a previous comment that was approved then your comment will bypass moderation.





Comments will be sent to the moderation queue.