locked
Windows update on Vista won't stop checking for updates RRS feed

  • Question

  • I've been working on this one for several weeks with no joy. A brief summary is:

    Symptoms: When running a Windows Update it just sticks on 'Checking for updates' with the green bar whizzing below.  It actually did this for over a week non-stop before I remembered I'd started the test and rebooted the machine.

    Setup: This is Vista Pro with SP2 installed, connected to a domain with WSUS 3.2 installed.  It is the only computer which fails to update and receives the same group policy as all the others.

    What I've tried: Re-registering all the DLLs listed on the various 'how can I kick-start WU?' pages I've found, including the Microsoft recommendations for resetting AU and BITS to their default settings.  I've run the 50202 MicrosoftEasyFix 'solution'.  I've run the System Readiness Tool (which also sticks on 'Searching for Updates'.  Various command line triggers for WUAUCLT.exe.  Checked to make sure that WSUS is available and visible from the client (which it is).  Removed all firewall options as well as simply disabling them (but, again, all clients have the same AV with the same policies so I wouldn't expect a problem there).  Run the 'SFC /checknow' utility.  Checked the Event Log.

    What I've found: WindowsUpdate.log contains errors, principally stating ...

    WARNING: Failed to evaluate Installed rule, updateId = {07AEE973-703C-4F27-83F1-3E764D9ED2C7}.202, hr = 80041010

    I have found nothing to help resolve that.

    When running SFC it failed with the following:

    Cannot repair member file [l:20{10}]"config.sys" of Microsoft-Windows-NTVDM-System32, Version = 6.0.6002.18005, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, file is missing

     

    Cannot repair member file [l:24{12}]"autoexec.bat" of Microsoft-Windows-NTVDM-System32, Version = 6.0.6002.18005, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, file is missing

    Personally I think that is a red herring, but it is a bit odd all the same.

    When running the utility to reset Windows Updates I used the following BAT file:

    echo off
    echo Stopping services ...
    net stop bits
    net stop wuauserv
    net stop appidsvc
    net stop cryptsvc
    
    echo Removing update history ...
    rmdir %windir%\softwaredistribution /s /q  
    regsvr32 /s wuaueng.dll 
    regsvr32 /s wuaueng1.dll 
    regsvr32 /s atl.dll 
    regsvr32 /s wups.dll 
    regsvr32 /s wups2.dll 
    regsvr32 /s wuweb.dll 
    regsvr32 /s wucltui.dll
    
    echo Reregistering Windows Update components ...
    Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
    Ren %systemroot%\system32\catroot2 catroot2.bak
    sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
    sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
    
    cd /d %windir%\system32
    @echo on
    regsvr32.exe /s atl.dll
    regsvr32.exe /s urlmon.dll
    regsvr32.exe /s mshtml.dll
    regsvr32.exe /s shdocvw.dll
    regsvr32.exe /s browseui.dll
    regsvr32.exe /s jscript.dll
    regsvr32.exe /s vbscript.dll
    regsvr32.exe /s scrrun.dll
    regsvr32.exe /s msxml.dll
    regsvr32.exe /s msxml3.dll
    regsvr32.exe /s msxml6.dll
    regsvr32.exe /s actxprxy.dll
    regsvr32.exe /s softpub.dll
    regsvr32.exe /s wintrust.dll
    regsvr32.exe /s dssenh.dll
    regsvr32.exe /s rsaenh.dll
    regsvr32.exe /s gpkcsp.dll
    regsvr32.exe /s sccbase.dll
    regsvr32.exe /s slbcsp.dll
    regsvr32.exe /s cryptdlg.dll
    regsvr32.exe /s oleaut32.dll
    regsvr32.exe /s ole32.dll
    regsvr32.exe /s shell32.dll
    regsvr32.exe /s initpki.dll
    regsvr32.exe /s wuapi.dll
    regsvr32.exe /s wuaueng.dll
    regsvr32.exe /s wuaueng1.dll
    regsvr32.exe /s wucltui.dll
    regsvr32.exe /s wups.dll
    regsvr32.exe /s wups2.dll
    regsvr32.exe /s wuweb.dll
    regsvr32.exe /s qmgr.dll
    regsvr32.exe /s qmgrprxy.dll
    regsvr32.exe /s wucltux.dll
    regsvr32.exe /s muweb.dll
    regsvr32.exe /s wuwebv.dll
    @echo off
    netsh winsock reset
    netsh winsock reset proxy
    
    echo Removing Windows Update logfile ...
    del %windir%\WindowsUpdate.log
    
    echo Starting services ...
    net start bits
    net start wuauserv
    net start appidsvc
    net start cryptsvc
    
    bitsadmin.exe /reset /allusers
    
    echo Finished.  Press any key to restart the computer.
    pause
    shutdown -r -t 0

    The only error I got was that the APPIDSVC service did not exist.

    Interestingly enough, when I ran this without the /s switch for the registry server almost everything re-registered correctly, except for the following:

    • Wuaueng1.dll - missing
    • Wuweb.dll - missing
    • Wucltui.dll - missing
    • Mshtml.dll - possibly corrupt
    • Shdocvw.dll - possibly corrupt
    • Browseui.dll - possibly corrupt
    • Msxml.dll - missing
    • Gpkcsp.dll - missing
    • Sccbase.dll - missing
    • Slbcsp.dll - missing
    • Initpki.dll - missing
    • Qmgr.dll - missing
    • Muweb.dll - missing

    Of course, some of these may not be relevant for Vista, but if they are then perhaps that is the cause.

    When running the Update Readiness Tool (AKA Windows Update Standalone Installer) it just sits there checking for updates and goes no further.  The WindowsUpdate.log ends with:

    2017-08-29 19:20:56:306 5600 1758 Misc ===========  Logging initialized (build: 7.6.7600.256, tz: +0100)  ===========
    2017-08-29 19:20:56:306 5600 1758 Misc   = Process: C:\Windows\system32\wusa.exe
    2017-08-29 19:20:56:306 5600 1758 Misc   = Module: C:\Windows\system32\wuapi.dll
    2017-08-29 19:20:56:306 5600 1758 COMAPI -----------  COMAPI: IUpdateServiceManager::AddScanPackageService  -----------
    2017-08-29 19:20:56:306 5600 1758 COMAPI   - ServiceName = Windows Update Standalone Installer
    2017-08-29 19:20:56:306 5600 1758 COMAPI   - ScanFileLocation = C:\24c22f845bfe0e37e9bbf22e73\wsusscan.cab
    2017-08-29 19:20:56:446 1132 11d8 Misc Validating signature for C:\Windows\SoftwareDistribution\ScanFile\f4db087c-f319-4ba6-b658-7fa8b5a755d3\Source.cab:
    2017-08-29 19:20:56:478 1132 11d8 Misc  Microsoft signed: Yes
    2017-08-29 19:20:56:790 1132 11d8 DtaStor Default service for AU is {7971F918-A847-4430-9279-4A52D1EFE18D}
    2017-08-29 19:20:56:805 5600 1758 COMAPI   - Added scan package service, ServiceID = {F4DB087C-F319-4BA6-B658-7FA8B5A755D3} Third party service
    2017-08-29 19:20:56:805 5600 1758 COMAPI -------------
    2017-08-29 19:20:56:805 5600 1758 COMAPI -- START --  COMAPI: Search [ClientId = wusa]
    2017-08-29 19:20:56:805 5600 1758 COMAPI ---------
    2017-08-29 19:20:56:805 5600 1758 COMAPI <<-- SUBMITTED -- COMAPI: Search [ClientId = wusa]
    It is now 19:51 and there has been no change to the log (30 minutes).  There is more preceding this, obviously, but I don't think it is relevant.  I will post it if it helps.

    So, I need two things:

    1) Do the missing or corrupted DLLs and the apparently missing AUTOEXEC.BAT, CONFIG.SYS and APPIDSVC service anything which I need to worry about?

    2) If they are, how do I go about reinstalling them, restoring them or generally making the machine happy again?

    Any and all help gratefully received.

    Angus

    Tuesday, August 29, 2017 6:52 PM

All replies

  • Hi Sir,

    >>When running SFC it failed with the following:...

    >>If they are, how do I go about reinstalling them, restoring them or generally making the machine happy again?

    The first thing came into my mind is performing "in-place upgrade" then check if issue persists :

    https://support.microsoft.com/en-sg/help/2255099/how-to-perform-an-in-place-upgrade-on-windows-vista--windows-7--window

      

    Best Regards,

    Elton


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    Wednesday, August 30, 2017 9:17 AM
  • Hi Elton,

    Thanks for your response.  Doesn't the 'in-place upgrade' do exactly that - upgrade the computer from Vista to Windows 7?  As such wouldn't I have to purchase a Windows DVD in order to do that?  If not then please explain how I can do this so that the end result is a working version of Vista.

    Regards,

    Angus

    Thursday, August 31, 2017 11:09 AM
  • This can happen if WSUS does not respond in a normal amount of time. My script will probably fix this issue.

    Have a peek at my Adamj Clean-WSUS script. It is the last WSUS Script you will ever need!

    http://community.spiceworks.com/scripts/show/2998-adamj-clean-wsus

    What it does:

    1. Add WSUS Index Optimization to the database to increase the speed of many database operations in WSUS by approximately 1000-1500 times faster.
    2. Remove all Drivers from the WSUS Database (Default; Optional).
    3. Shrink your WSUSContent folder's size by declining multiple types of updates including by default any superseded updates, preview updates, expired updates, Itanium updates, and beta updates. Optional extras: Language Packs, IE7, IE8, IE9, IE10, Embedded, NonEnglishUpdates, ComputerUpdates32bit, WinXP.
    4. Remove declined updates from the WSUS Database.
    5. Clean out all the synchronization logs that have built up over time (configurable, with the default keeping the last 14 days of logs).
    6. Compress Update Revisions.
    7. Remove Obsolete Updates.
    8. Computer Object Cleanup (configurable, with the default of deleting computer objects that have not synced within 30 days).
    9. Application Pool Memory Configuration to display the current private memory limit and easily set it to any configurable amount including 0 for unlimited. This is a manual execution only.
    10. Checks to see if you have a dirty database, and if you do, fixes it. This is primarily for Server 2012 WSUS, and is a manual execution only.
    11. Run the Recommended SQL database Maintenance script on the actual SQL database.
    12. Run the Server Cleanup Wizard.

    It will email the report out to you or save it to a file, or both.

    Although the script is lengthy, it has been made to be super easy to setup and use so don't over think it. There are some prerequisites and instructions at the top of the script. After installing the prerequisites and configuring the variables for your environment (email settings only if you are accepting all the defaults), simply run:

    .\Clean-WSUS.ps1 -FirstRun

    If you wish to view or increase the Application Pool Memory Configuration, or run the Dirty Database Check, you must run it with the required switch. See Get-Help .\Clean-WSUS.ps1 -Examples

    If you're having trouble, there's also a -HelpMe option that will create a log so you can send it to me for support.


    Adam Marshall, MCSE: Security
    http://www.adamj.org

    Saturday, September 2, 2017 1:25 AM
  • Hello Adam,

    As you know, I am already using your script :-)

    Angus

    Saturday, September 2, 2017 3:20 AM
  • I thought I recognized your name. Version 3.0 released today so you'll want to update. Does it fix this issue specifically? I didn't see an answer on this thread which is why I posted :)

    Adam Marshall, MCSE: Security
    http://www.adamj.org

    Saturday, September 2, 2017 3:27 AM
  • I'll update later on when I RD into the server and let you know.  Do I still need to do the FirstRun function?  Just feels like it's a problem with this particular Vista laptop rather than the server since all other clients report correctly.
    Saturday, September 2, 2017 3:40 AM
  • Yes, Upgrades and initial configs are the same - edit the config and run -FirstRun

    Try on the Vista laptop to run this script from an Administrative CMD Prompt after running my new version:

    net stop bits
    net stop wuauserv
    reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
    reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
    reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
    reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientIDValidation /f
    rd /s /q "C:\WINDOWS\SoftwareDistribution"
    net start bits
    net start wuauserv
    wuauclt /resetauthorization /detectnow


    Adam Marshall, MCSE: Security
    http://www.adamj.org

    Saturday, September 2, 2017 3:57 AM
  • Hi Adam,

    I ran your script in an administrative command prompt after installing your Clean-WSUS v3 (and leaving it for 24 hours, just to be sure).  The results are below:

    Microsoft Windows [Version 6.0.6002]
    Copyright (c) 2006 Microsoft Corporation.  All rights reserved.
    
    C:\Windows\system32>net stop bits
    The Background Intelligent Transfer Service service is stopping..
    The Background Intelligent Transfer Service service was stopped successfully.
    
    
    C:\Windows\system32>net stop wuauserv
    The Windows Update service is stopping......
    The Windows Update service was stopped successfully.
    
    
    C:\Windows\system32>reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\W
    indowsUpdate" /v AccountDomainSid /f
    ERROR: The system was unable to find the specified registry key or value.
    
    C:\Windows\system32>reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\W
    indowsUpdate" /v PingID /f
    ERROR: The system was unable to find the specified registry key or value.
    
    C:\Windows\system32>reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\W
    indowsUpdate" /v SusClientId /f
    The operation completed successfully.
    
    C:\Windows\system32>reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\W
    indowsUpdate" /v SusClientIDValidation /f
    The operation completed successfully.
    
    C:\Windows\system32>rd /s /q "C:\WINDOWS\SoftwareDistribution"
    C:\WINDOWS\SoftwareDistribution\DATAST~1\DataStore.edb - The process cannot acce
    ss the file because it is being used by another process.
    C:\WINDOWS\SoftwareDistribution\DATAST~1\Logs\edb.log - The process cannot acces
    s the file because it is being used by another process.
    C:\WINDOWS\SoftwareDistribution\DATAST~1\Logs\edbtmp.log - The process cannot ac
    cess the file because it is being used by another process.
    C:\WINDOWS\SoftwareDistribution\DATAST~1\Logs\tmp.edb - The process cannot acces
    s the file because it is being used by another process.
    C:\WINDOWS\SoftwareDistribution\EVENTC~1\{691A4786-F80B-480A-9E6A-3234EAA29D8E}.
    bin - The process cannot access the file because it is being used by another pro
    cess.
    C:\WINDOWS\SoftwareDistribution\ReportingEvents.log - The process cannot access
    the file because it is being used by another process.
    
    C:\Windows\system32>net start bits
    The requested service has already been started.
    
    More help is available by typing NET HELPMSG 2182.
    
    
    C:\Windows\system32>net start wuauserv
    The requested service has already been started.
    
    More help is available by typing NET HELPMSG 2182.
    
    
    C:\Windows\system32>wuauclt /resetauthorization /detectnow
    
    C:\Windows\system32>

    I guess that the error deleting the registry keys which didn't exist isn't too much of a concern given that we were trying to delete them anyway (unless they *should* have been there).  Irritating that BITS and WSAUSERV kept restarting.  Would it be worth setting them to manual first, then stop them, then remove the SoftwareDistribution folder (my batch file listed at the beginning does this anyway, so that folder has certainly been recreated several times recently).

    Angus

    Monday, September 4, 2017 12:52 PM
  • Reg keys not existing is fine - all scenarios, rather than just yours.

    the 2 services - that's annoying. I'd set them to disabled stop them and then re-run the script to confirm that the folder's contents are deleted. Reboot the system with those 2 services still disabled, and then manually delete the SoftareDistribution folder if it's still there. Then re-enable the services.

    My total re-install of Windows Update on the client for XP/Vista/7 Systems was:

    net stop bits 
    net stop wuauserv
    del /f /s /q %windir%\SoftwareDistribution\*.*
    del /f /s /q %windir%\windowsupdate.log
    %windir%\system32\regsvr32.exe /s %windir%\system32\atl.dll 
    %windir%\system32\regsvr32.exe /s %windir%\system32\jscript.dll 
    %windir%\system32\regsvr32.exe /s %windir%\system32\msxml3.dll 
    %windir%\system32\regsvr32.exe /s %windir%\system32\softpub.dll 
    %windir%\system32\regsvr32.exe /s %windir%\system32\wuapi.dll 
    %windir%\system32\regsvr32.exe /s %windir%\system32\wuaueng.dll 
    %windir%\system32\regsvr32.exe /s %windir%\system32\wuaueng1.dll 
    %windir%\system32\regsvr32.exe /s %windir%\system32\wucltui.dll 
    %windir%\system32\regsvr32.exe /s %windir%\system32\wups.dll 
    %windir%\system32\regsvr32.exe /s %windir%\system32\wuweb.dll 
    REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v LastWaitTimeout /f
    REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionStartTime /f
    REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f
    regsvr32 /u wuaueng.dll /s
    regsvr32 wuaueng.dll /s
    
    net start bits
    net start wuauserv
    wuauclt.exe /resetauthorization /detectnow
    

    Yours off of quick glance looks as comprehensive as mine. I think yours contains everything mine has, but double check.


    Adam Marshall, MCSE: Security
    http://www.adamj.org

    Monday, September 4, 2017 4:06 PM
  • If nothing of that works - I'd say re-install Vista if it has to stay a Vista machine, otherwise upgrade it to an OS that's supported.

    I've not found any software that (with a bunch of adjustments) that won't Run on Windows 7/8/8.1/10 (in the same architecture) that used to run on Windows Vista.


    Adam Marshall, MCSE: Security
    http://www.adamj.org

    Monday, September 4, 2017 4:11 PM
  • I was just about to RD into the laptop when the owner of it decided to up and away with it, so I will have to wait and try your tips later.  Really frustrating! :-D

    Upgrading the OS would be the best option, I agree, but as I mentioned to Elton on 30th Aug, it isn't cost free.  Anyway, if we're going to do that then the hardware really needs to change too.  It's pretty ropey.

    Monday, September 4, 2017 6:59 PM
  • By the way, I noticed in the WSUS console that this laptop had pinged it and updated the 'Last Contact Date' with about lunchtime today.  Not sure if it is actually downloading any updates, though.  WSUS set for them to download required updates from Microsoft rather than the local WSUS server.  Will have to see how it's going when I get my hands (physical or virtual will do me) on the laptop again.
    Monday, September 4, 2017 7:01 PM
  • Hi Elton,

    Thanks for your response.  Doesn't the 'in-place upgrade' do exactly that - upgrade the computer from Vista to Windows 7?  As such wouldn't I have to purchase a Windows DVD in order to do that?  If not then please explain how I can do this so that the end result is a working version of Vista.

    Regards,

    Angus

    Hi,

    NO , I mean the " fix installation" .

    For details please check that article .

    Best Regards,

    Elton


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.


    • Edited by Elton_Ji Friday, September 15, 2017 9:03 AM
    Friday, September 15, 2017 9:03 AM
  • Hi Elton,

    Thank you.  Where do I find 'Fix Installation'?  Would this be on the original installation DVD?

    Regards,

    Angus

    Monday, September 18, 2017 3:06 PM