Why error 0x800f0900 occurs and how to fix it

Error 0x800f0900 can occur during the installation of a cumulative update for Windows 10. Users often complain about this error when they try to install the KB4464218 update, but it can also occur with other packages, such as KB4056887.

0x800f0900 is quite a typical error for the Update Center (WU), which is solved by a set of long-proven methods. Troubleshooter, SFC and DISM, hard reset of WU components – that’s what we’ll now look at below.

Solution for error 0x800f0900

Method # 1 Troubleshooter

Running the troubleshooter is the very first thing you should try in case of 0x800f0900 and other similar errors. This is done as follows:

  • press Win + I to open the window with system parameters;
  • open the “Update and Security” section;
  • go to the tab (subsection) “Troubleshooting”;
  • select “Windows Update” and click on “Run the troubleshooter”;
  • follow the instructions on the screen.

Restart your computer after using the troubleshooter, and then run Windows 10 update again.

Method # 2 Running SFC and DISM

Corrupted system files can easily cause a variety of problems for the system, including various errors during the update. We recommend using SFC and DISM to repair potential damage. Do the following:

  • press Win + R;
  • write cmd and press Ctrl + Shift + Enter;
  • having opened the command line (as administrator), enter the sfc / scannow command and press Enter;
  • wait for the command to finish and restart the PC;
  • reopen the command prompt;
  • run the DISM / Online / Cleanup-Image / RestoreHealth command;
  • restart your computer.

Check if the error 0x800f0900 has been fixed when updating Windows 10.

Method number 3 Resetting the components of the Update Center (WU)

Resetting the Update Center components is a method that often solves all problems during a Windows 10 update. Usually, the user performs it using a special set of commands that are entered, as you might guess, into the Command Prompt. Nevertheless, you can find a bunch of smart guys on the net who have written scripts to automate such a process.

Open the most common Notepad (Win + R → notepad) and paste the following script 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 ;; SLCS; SYRPWP AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;; WD)
sc.exe sdset cryptsvc D: (A ;; CCLCSWLOCRRC ;;; AU) (A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; BA) (A ;; CCDCLCSWRPWPDTLCRSDRCWDWO ;;; SO) (A ;; CCLCTWR; 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
:: / ********************************************** ************************************* /

Then name the created file, for example, FastWinUpReset, change its extension to .bat and save it to any convenient place – even the desktop will do. You should have a FastWinUpReset.bat file. Double-click on this file with the left mouse button and watch the automatic reset of the Update Center components.

Method # 4 Installing the update manually

Still having trouble installing the required update? Then you have a direct road to Microsoft Update Catalog… Go to the site, use the search box to find and download the problematic update. Then just double-click on the downloaded LMB file and follow the instructions on the screen. With this method, error 0x800f0900 shouldn’t bother you.

Earn points and exchange them for valuable prizes – details

Leave a Comment