Windows更新遇到0x80073b01更新错误的解决方法

最近Windows 11 24H2更新遇到0x80073b01错误,单独安装补丁也不行。下面找到一些解决方法,如果遇到的可以尝试一下。

一、系统修复
用管理员运行cmd,然后 输入 sfc /scannow回车,系统会自动修复错误。
修复完成后,接着运行以下命令

  • DISM /Online /Cleanup-Image /CheckHealth
  • DISM /Online /Cleanup-Image /ScanHealth
  • DISM /Online /Cleanup-Image /RestoreHealth

然后停止自动更新服务

  • net stop wuauserv
  • net stop cryptSvc
  • net stop bits
  • net stop msiserver

删除系统更新缓存

  • ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
  • ren C:\Windows\System32\catroot2 Catroot2.old

重新启动更新服务

  • net start wuauserv
  • net start cryptSvc
  • net start bits
  • net start msiserver

然后重启电脑,再重新更新试一下

二、用系统原版镜像更新

如果依旧提示0x80073b01错误,可以下载系统最新原版ISO镜像,然后直接运行ISO,双击setup运行系统安装。系统安装的时候,会自动更新,然后升级系统到最新版。这样基本可以解决0x80073b01错误。

4 Likes

感谢大佬分享

感谢分享大佬厉害啊

直接用微软的升级助手就行,会下载全新镜像更新。

感谢大佬分享

2 Likes

你也可以参考以下方法重置 Windows 更新组件:

  • Windows 11
    参考方法: 在 Windows 11 中重置 Windows 更新
    或者你可以直接新建一个 .txt 文本文件,将以下脚本内容粘贴进去保存,并将文件后缀名改为 .bat,然后运行该文件即可完成 Windows 11 更新组件的重置:
    Reset_Reregister_Windows_Update_Components_for_Windows11.bat

    点击展开查看脚本代码
    @echo off
    
    :: Created by: Shawn Brink
    :: Created on: January 6, 2022
    :: Updated on: February 27, 2024
    :: Tutorial: https://www.elevenforum.com/t/reset-windows-update-in-windows-11.3808/
    
    
    :: Prompt to Run as administrator
    Set "Variable=0" & if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs"
    fsutil dirty query %systemdrive%  >nul 2>&1 && goto :(Privileges_got)
    If "%1"=="%Variable%" (echo. &echo. Please right-click on the file and select &echo. "Run as administrator". &echo. Press any key to exit. &    pause>nul 2>&1& exit)
    cmd /u /c echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "%~0", "%Variable%", "", "runas", 1 > "%temp%\getadmin.vbs"&    cscript //nologo "%temp%\getadmin.vbs" & exit
    :(Privileges_got)
    
    :: Checking and Stopping the Windows Update services
    set b=0
    
    :bits
    set /a b=%b%+1
    if %b% equ 3 (
       goto end1
    )
    net stop bits
    echo Checking the bits service status.
    sc query bits | findstr /I /C:"STOPPED"
    if not %errorlevel%==0 (
        goto bits
    )
    goto loop2
    
    :end1
    cls
    echo.
    echo Cannot reset Windows Update since "Background Intelligent Transfer Service" (bits) service failed to stop. Please restart the computer, and    try again.
    echo.
    pause
    goto Start
    
    
    :loop2
    set w=0
    
    :wuauserv
    set /a w=%w%+1
    if %w% equ 3 (
       goto end2
    )
    net stop wuauserv
    echo Checking the wuauserv service status.
    sc query wuauserv | findstr /I /C:"STOPPED"
    if not %errorlevel%==0 (
        goto wuauserv
    )
    goto loop3
    
    :end2
    cls
    echo.
    echo Cannot reset Windows Update since "Windows Update" (wuauserv) service failed to stop. Please restart the computer, and try again.
    echo.
    pause
    goto Start
    
    
    
    :loop3
    set c=0
    
    :cryptsvc
    set /a c=%c%+1
    if %c% equ 3 (
       goto end4
    )
    net stop cryptsvc
    echo Checking the cryptsvc service status.
    sc query cryptsvc | findstr /I /C:"STOPPED"
    if not %errorlevel%==0 (
        goto cryptsvc
    )
    goto Reset
    
    :end4
    cls
    echo.
    echo Cannot reset Windows Update since "Cryptographic Services" (cryptsvc) service failed to stop. Please restart the computer, and try again.
    echo.
    pause
    goto Start
    
    
    :Reset
    Ipconfig /flushdns
    del /s /q /f "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
    del /s /q /f "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr*.dat"
    del /s /q /f "%SYSTEMROOT%\Logs\WindowsUpdate\*"
    
    
    if exist "C:\$WinREAgent" rmdir /s /q "C:\$WinREAgent"
    
    if exist "%SYSTEMROOT%\winsxs\pending.xml.bak" del /s /q /f "%SYSTEMROOT%\winsxs\pending.xml.bak"
    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\DataStore.bak" rmdir /s /q "%SYSTEMROOT%\SoftwareDistribution\DataStore.bak"
    if exist "%SYSTEMROOT%\SoftwareDistribution\DataStore" (
        attrib -r -s -h /s /d "%SYSTEMROOT%\SoftwareDistribution\DataStore"
        ren "%SYSTEMROOT%\SoftwareDistribution\DataStore" DataStore.bak
    )
    
    if exist "%SYSTEMROOT%\SoftwareDistribution\Download.bak" rmdir /s /q "%SYSTEMROOT%\SoftwareDistribution\Download.bak"
    if exist "%SYSTEMROOT%\SoftwareDistribution\Download" (
        attrib -r -s -h /s /d "%SYSTEMROOT%\SoftwareDistribution\Download"
        ren "%SYSTEMROOT%\SoftwareDistribution\Download" Download.bak
    )
    
    if exist "%SYSTEMROOT%\system32\Catroot2.bak" rmdir /s /q "%SYSTEMROOT%\system32\Catroot2.bak"
    if exist "%SYSTEMROOT%\system32\Catroot2" (
        attrib -r -s -h /s /d "%SYSTEMROOT%\system32\Catroot2"
        ren "%SYSTEMROOT%\system32\Catroot2" Catroot2.bak
    )
    
    
    :: Reset Windows Update policies
    reg delete "HKCU\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f
    reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /f
    reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f
    reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /f
    gpupdate /force
    
    
    :: Reset the BITS service and the Windows Update service to the default security descriptor
    sc.exe sdset bits D:(A;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)
    sc.exe sdset wuauserv D:(A;;CCLCSWRPLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)
    
    
    :: Reregister the BITS files and the Windows Update files
    cd /d %windir%\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
    netsh winsock reset
    netsh winsock reset proxy
    
    :: Set the startup type as automatic
    sc config wuauserv start= auto
    sc config bits start= auto
    sc config DcomLaunch start= auto
    
    :Start
    net start bits
    net start wuauserv
    net start cryptsvc
    
    :: Restart computer
    cls
    echo It is required to restart the computer to finish resetting Windows Update.
    echo.
    echo Please save and close anything open now, before the computer is restarted.
    echo.
    pause
    echo.
    echo.
    echo.
    echo *** Restart computer now. ***
    echo.
    pause
    shutdown /r /f /t 0
    
  • Windows 10
    参考方法:在 Windows 10 中重置 Windows 更新
    同样,你可以使用以下脚本代码来重置 Windows 10 的更新组件。
    Reset_Reregister_Windows_Update_Components_for_Windows10.bat

    点击展开查看脚本代码
    @echo off
    
    :: Created by: Shawn Brink
    :: Created on: October 1, 2015
    :: Updated on: March 8, 2021
    :: Tutorial: https://www.tenforums.com/tutorials/24742-reset-windows-update-windows-10-a.html
    
    
    :: Prompt to Run as administrator
    Set "Variable=0" & if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs"
    fsutil dirty query %systemdrive%  >nul 2>&1 && goto :(Privileges_got)
    If "%1"=="%Variable%" (echo. &echo. Please right-click on the file and select &echo. "Run as administrator". &echo. Press any key to exit. &    pause>nul 2>&1& exit)
    cmd /u /c echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "%~0", "%Variable%", "", "runas", 1 > "%temp%\getadmin.vbs"&    cscript //nologo "%temp%\getadmin.vbs" & exit
    :(Privileges_got)
    
    :: Checking and Stopping the Windows Update services
    set b=0
    
    :bits
    set /a b=%b%+1
    if %b% equ 3 (
       goto end1
    )
    net stop bits
    echo Checking the bits service status.
    sc query bits | findstr /I /C:"STOPPED"
    if not %errorlevel%==0 (
        goto bits
    )
    goto loop2
    
    :end1
    cls
    echo.
    echo Cannot reset Windows Update since "Background Intelligent Transfer Service" (bits) service failed to stop. Please restart the computer, and    try again.
    echo.
    pause
    goto Start
    
    
    :loop2
    set w=0
    
    :wuauserv
    set /a w=%w%+1
    if %w% equ 3 (
       goto end2
    )
    net stop wuauserv
    echo Checking the wuauserv service status.
    sc query wuauserv | findstr /I /C:"STOPPED"
    if not %errorlevel%==0 (
        goto wuauserv
    )
    goto loop3
    
    :end2
    cls
    echo.
    echo Cannot reset Windows Update since "Windows Update" (wuauserv) service failed to stop. Please restart the computer, and try again.
    echo.
    pause
    goto Start
    
    
    
    :loop3
    set app=0
    
    :appidsvc
    set /a app=%app%+1
    if %app% equ 3 (
       goto end3
    )
    net stop appidsvc
    echo Checking the appidsvc service status.
    sc query appidsvc | findstr /I /C:"STOPPED"
    if not %errorlevel%==0 (
        goto appidsvc
    )
    goto loop4
    
    :end3
    cls
    echo.
    echo Cannot reset Windows Update since "Application Identity" (appidsvc) service failed to stop. Please restart the computer, and try again.v
    echo.
    pause
    goto Start
    
    
    :loop4
    set c=0
    
    :cryptsvc
    set /a c=%c%+1
    if %c% equ 3 (
       goto end4
    )
    net stop cryptsvc
    echo Checking the cryptsvc service status.
    sc query cryptsvc | findstr /I /C:"STOPPED"
    if not %errorlevel%==0 (
        goto cryptsvc
    )
    goto Reset
    
    :end4
    cls
    echo.
    echo Cannot reset Windows Update since "Cryptographic Services" (cryptsvc) service failed to stop. Please restart the computer, and try again.
    echo.
    pause
    goto Start
    
    
    :Reset
    Ipconfig /flushdns
    del /s /q /f "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
    del /s /q /f "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr*.dat"
    del /s /q /f "%SYSTEMROOT%\Logs\WindowsUpdate\*"
    
    
    if exist "%SYSTEMROOT%\winsxs\pending.xml.bak" del /s /q /f "%SYSTEMROOT%\winsxs\pending.xml.bak"
    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.bak" rmdir /s /q "%SYSTEMROOT%\SoftwareDistribution.bak"
    if exist "%SYSTEMROOT%\SoftwareDistribution" (
        attrib -r -s -h /s /d "%SYSTEMROOT%\SoftwareDistribution"
        ren "%SYSTEMROOT%\SoftwareDistribution" SoftwareDistribution.bak
    )
    
    if exist "%SYSTEMROOT%\system32\Catroot2.bak" rmdir /s /q "%SYSTEMROOT%\system32\Catroot2.bak"
    if exist "%SYSTEMROOT%\system32\Catroot2" (
        attrib -r -s -h /s /d "%SYSTEMROOT%\system32\Catroot2"
        ren "%SYSTEMROOT%\system32\Catroot2" Catroot2.bak
    )
    
    
    :: Reset Windows Update policies
    reg delete "HKCU\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f
    reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /f
    reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f
    reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /f
    gpupdate /force
    
    
    :: Reset the BITS service and the Windows Update service to the default security descriptor
    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)
    
    :: Reregister the BITS files and the Windows Update files
    cd /d %windir%\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
    regsvr32.exe /s wudriver.dll
    netsh winsock reset
    netsh winsock reset proxy
    
    :: Set the startup type as automatic
    sc config wuauserv start= auto
    sc config bits start= auto
    sc config DcomLaunch start= auto
    
    :Start
    net start bits
    net start wuauserv
    net start appidsvc
    net start cryptsvc
    
    :: Restart computer
    cls
    echo It is required to restart the computer to finish resetting Windows Update.
    echo.
    echo Please save and close anything open now, before the computer is restarted.
    echo.
    pause
    echo.
    echo.
    echo.
    echo *** Restart computer now. ***
    echo.
    pause
    shutdown /r /f /t 0
    
1 Like