How to fix update error 0x8024a223 on Windows 10?

Error 0x8024a223 appears before Windows 10 owners when they try to update their system. As a rule, this error is most often encountered by users with build 1809, however, it can also be seen on other versions of the OS.

Causes of Error 0x8024a223

  • Incorrectly working components of the Update Center (WU).
  • Interference in the process of updating third-party antiviruses.

Methods for solving error 0x8024a223

0x8024a223

Method # 1 Built-in troubleshooter

The built-in troubleshooter can be extremely helpful in such cases. It will determine what exactly the problem is and then try to fix it. To run the troubleshooter, do the following:

  • press Win + I;
  • open “Update and Security”;
  • go to “Troubleshooting”;
  • select Update Center and click “Run the troubleshooter”;
  • follow the further instructions on the screen.

Method # 2 Disable third-party antivirus

Do you have a third-party antivirus installed? Then we strongly recommend deactivating its active protection. Some free antivirus programs, such as AVG AntiVirus Free or Panda Free Antivirus, can literally interfere with system updates. Disable your antivirus and then try updating Windows.

Method # 3 Resetting the Catroot2 folder

The Catroot2 folder is incredibly important during the Windows 10 upgrade process. However, it needs to be cleaned up from time to time to avoid various errors such as 0x8024a223. Try this:

  • press Win + X;
  • select “Command line (administrator)”;
  • run a series of the following commands:
    • net stop cryptsvc
    • md% systemroot% system32 catroot2.bak
    • xcopy% systemroot% system32 catroot2% systemroot% system32 catroot2.bak / s
  • open File Explorer and go to this directory:
    • C: Windows System32 catroot2
  • delete everything in the catroot2 folder;
  • run the command net start cryptsvc;
  • restart your computer.

Once you enter the OS, open Update and try updating Windows again. After resetting the Catroot2 folder, the error 0x8024a223 could go away.

Method # 4 Renaming the SoftwareDistribution folder

SoftwareDistribution is another extremely important folder for the Windows update process. As a rule, ordinary users, in principle, do not interact with this folder in any way. However, if update errors occur, it also has to be reset, like the Catroot2 folder.

  • Open Command Prompt and run these commands in it one by one:
    • net stop wuauserv
    • net stop bits
    • rename% windir% SoftwareDistribution SoftwareDistribution.bak
    • net start wuauserv
    • net start bits
  • restart your computer.

Go to Windows Update and check for error 0x8024a223.

Method # 5 Resetting the Update Center components

If none of the above could help you, then it’s time to start something more serious. Resetting the Update Center components is the process that you have to deal with in case of update errors that cannot be resolved by other methods.

Do the following on your computer:

  • create a WUpdateReset.txt file in any convenient place;
  • open it and paste this (huge) set of commands into it:
    • :: Run the reset Windows Update components.
      :: void components ();
      :: / ********************************************* ************************************* /
      : components
      :: —– Stopping the Windows Update services —–
      call: print Stopping the Windows Update services.
      net stop bitscall: print Stopping the Windows Update services.
      net stop wuauservcall: print Stopping the Windows Update services.
      net stop appidsvccall: print Stopping the Windows Update services.
      net stop cryptsvccall: print Canceling the Windows Update process.
      taskkill / im wuauclt.exe / f

      :: —– Checking the services status —–
      call: print Checking the services status.

      sc query bits | findstr / I / C: “STOPPED”
      if% errorlevel% NEQ 0 (
      echo. Failed to stop the BITS service.
      echo.
      echo.Press any key to continue. … …
      pause> nul
      goto: eof
      )

      call: print Checking the services status.

      sc query wuauserv | findstr / I / C: “STOPPED”
      if% errorlevel% NEQ 0 (
      echo. Failed to stop the Windows Update service.
      echo.
      echo.Press any key to continue. … …
      pause> nul
      goto: eof
      )

      call: print Checking the services status.

      sc query appidsvc | findstr / I / C: “STOPPED”
      if% errorlevel% NEQ 0 (
      sc query appidsvc | findstr / I / C: “OpenService FAILED 1060”
      if% errorlevel% NEQ 0 (
      echo. Failed to stop the Application Identity service.
      echo.
      echo.Press any key to continue. … …
      pause> nul
      if% family% NEQ 6 goto: eof
      )
      )

      call: print Checking the services status.

      sc query cryptsvc | findstr / I / C: “STOPPED”
      if% errorlevel% NEQ 0 (
      echo. Failed to stop the Cryptographic Services service.
      echo.
      echo.Press any key to continue. … …
      pause> nul
      goto: eof
      )

      :: —– Delete the qmgr * .dat files —–
      call: print Deleting the qmgr * .dat files.

      del / s / q / f “% ALLUSERSPROFILE% Application Data Microsoft Network Downloader qmgr * .dat”
      del / s / q / f “% ALLUSERSPROFILE% Microsoft Network Downloader qmgr * .dat”

      :: —– Renaming the softare distribution folders backup copies —–
      call: print Deleting the old software distribution backup copies.

      cd / d% SYSTEMROOT%

      if exist “% SYSTEMROOT% winsxs pending.xml.bak” (
      del / s / q / f “% SYSTEMROOT% winsxs pending.xml.bak”
      )
      if exist “% SYSTEMROOT% SoftwareDistribution.bak” (
      rmdir / s / q “% SYSTEMROOT% SoftwareDistribution.bak”
      )
      if exist “% SYSTEMROOT% system32 Catroot2.bak” (
      rmdir / s / q “% SYSTEMROOT% system32 Catroot2.bak”
      )
      if exist “% SYSTEMROOT% WindowsUpdate.log.bak” (
      del / s / q / f “% SYSTEMROOT% WindowsUpdate.log.bak”
      )

      call: print Renaming the software distribution folders.

      if exist “% SYSTEMROOT% winsxs pending.xml” (
      takeown / f “% SYSTEMROOT% winsxs pending.xml”
      attrib -r -s -h / s / d “% SYSTEMROOT% winsxs pending.xml”
      ren “% SYSTEMROOT% winsxs pending.xml” pending.xml.bak
      )
      if exist “% SYSTEMROOT% SoftwareDistribution” (
      attrib -r -s -h / s / d “% SYSTEMROOT% SoftwareDistribution”
      ren “% SYSTEMROOT% SoftwareDistribution” SoftwareDistribution.bak
      if exist “% SYSTEMROOT% SoftwareDistribution” (
      echo.
      echo. Failed to rename the SoftwareDistribution folder.
      echo.
      echo.Press any key to continue. … …
      pause> nul
      goto: eof
      )
      )
      if exist “% SYSTEMROOT% system32 Catroot2” (
      attrib -r -s -h / s / d “% SYSTEMROOT% system32 Catroot2”
      ren “% SYSTEMROOT% system32 Catroot2” Catroot2.bak
      )
      if exist “% SYSTEMROOT% WindowsUpdate.log” (
      attrib -r -s -h / s / d “% SYSTEMROOT% WindowsUpdate.log”
      ren “% SYSTEMROOT% WindowsUpdate.log” WindowsUpdate.log.bak
      )

      :: —– Reset the BITS service and the Windows Update service to the default security descriptor —–
      call: print Reset the BITS service and the Windows Update service to the default security descriptor.

      sc.exe sdset wuauserv D: (A ;; CCLCSWLOCRRC ;;; AU) (A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; BA) (A ;; CCDCLCSWRPWPDTLCRSDRCWDWO ;;; SO) (AP ;; CCLCSWR; AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;; WD)
      sc.exe sdset bits D: (A ;; CCLCSWLOCRRC ;;; AU) (A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; BA) (A ;; CCDCLCSWRPWPDTLCRSDRCWDWO ;;; SO) (A ;; SLCSWRPWP( AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;; WD)
      sc.exe sdset cryptsvc D: (A ;; CCLCSWLOCRRC ;;; AU) (A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; BA) (A ;; CCDCLCSWRPWPDTLCRSDRCWDWO ;;; SO) (A ;; CCLCSWR; AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;; WD)
      sc.exe sdset trustedinstaller D: (A ;; CCLCSWLOCRRC ;;; AU) (A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; BA) (A ;; CCDCLCSWRPWPDTLCRSDRCWDWO ;;; SO) (A ;; CCLCSWR; AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;; WD)

      :: —– Reregister the BITS files and the Windows Update files —–
      call: print Reregister the BITS files and the Windows Update files.

      cd / d% SYSTEMROOT% system32
      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

      :: —– Resetting Winsock —–
      call: print Resetting Winsock.
      netsh winsock reset

      :: —– Resetting WinHTTP Proxy —–
      call: print Resetting WinHTTP Proxy.

      if% family% EQU 5 (
      proxycfg.exe -d
      ) else (
      netsh winhttp reset proxy
      )

      :: —– Set the startup type as automatic —–
      call: print Resetting the services as automatics.
      sc.exe config wuauserv start = auto
      sc.exe config bits start = delayed-auto
      sc.exe config cryptsvc start = auto
      sc.exe config TrustedInstaller start = demand
      sc.exe config DcomLaunch start = auto

      :: —– Starting the Windows Update services —–
      call: print Starting the Windows Update services.
      net start bits

      call: print Starting the Windows Update services.
      net start wuauserv

      call: print Starting the Windows Update services.
      net start appidsvc

      call: print Starting the Windows Update services.
      net start cryptsvc

      call: print Starting the Windows Update services.
      net start DcomLaunch

      :: —– End process —–
      call: print The operation completed successfully.

      echo.Press any key to continue. … …
      pause> nul
      goto: eof
      :: / ********************************************** ************************************* /

  • save the changes to the file and then change its extension to .bat;
  • double click on the WUpdateReset.bat file and follow the reset of the Update Center components.

The reset process will take place almost instantly. Once it finishes, restart your computer and check if the error 0x8024a223 is gone.

Earn points and exchange them for valuable prizes – details

Leave a Comment