错误代码0x80070005表示“访问被拒绝”,主因是系统服务、注册表或文件夹权限异常,需依次重置windows update组件、修复cbs注册表权限、修正hkey_users\s-1-5-20权限、启用关键服务、清理$windows.~bt文件夹。

如果您在尝试安装 Windows 更新时遇到错误代码 0x80070005,该错误通常表示“访问被拒绝”,根本原因多为系统关键服务、注册表项或文件夹的权限配置异常。以下是针对此错误的多种权限修复步骤:
一、重置 Windows Update 组件及 SoftwareDistribution 文件夹
该方法通过停止相关服务、重命名缓存目录并重启服务,清除可能损坏的更新临时文件并重置权限上下文。
1、以管理员身份运行命令提示符:按 Win + X,选择“Windows 终端(管理员)”或“命令提示符(管理员)”。
2、依次执行以下命令,每行输入后按回车:
net stop wuauserv
net stop cryptsvc
net stop bits
net stop msiserver
3、重命名两个关键文件夹:
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old
4、删除下载队列残留数据:
Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
5、重新启动服务:
net start wuauserv
net start cryptsvc
net start bits
net start msiserver
6、重启计算机后再次尝试检查更新。
二、修正 Windows Update 相关服务权限
错误 0x80070005 常由 TrustedInstaller 或 SYSTEM 账户对 CBS(Component Based Servicing)注册表项缺少完全控制权限引发。需通过 subinacl 工具授予必要权限。
1、新建一个文本文件,粘贴以下内容:
@echo off
IF exist "%ProgramFiles(x86)%" set OSBIT=64
set RUNNINGDIR=%ProgramFiles%
IF %OSBIT% == 64 set RUNNINGDIR=%ProgramFiles(x86)%
"%RUNNINGDIR%\Windows Resource Kits\Tools\subinacl.exe" /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing" /grant="nt service\trustedinstaller"=f
pause
2、将文件另存为 fix_permissions.cmd,保存类型设为“所有文件(*.*)”,编码为 ANSI。
3、确保已下载并安装 SubInACL v5.2,并将 subinacl.exe 放置于 %ProgramFiles%\Windows Resource Kits\Tools\ 路径下(64位系统需同步放入 %ProgramFiles(x86)% 对应路径)。
4、右键单击 fix_permissions.cmd,选择“以管理员身份运行”。
5、等待窗口显示“操作成功”并按任意键退出。
三、修复 HKEY_USERS\S-1-5-20 注册表权限
该 SID 表示“NT AUTHORITY\SYSTEM”在注册表中的用户配置单元,其权限缺失会直接导致 Office 激活与 Windows 更新失败。修改前必须备份注册表。
1、关闭所有 Office 程序及 Windows Update 进程。
2、按 Win + R 打开“运行”,输入 regedit,点击“确定”。
3、导航至 HKEY_USERS → S-1-5-20,右键点击该项,选择“权限”。
4、点击“添加”,输入当前登录用户名,点击“检查名称”,确认后点击“确定”。
5、选中刚添加的用户,点击“高级”,在“权限条目”列表中双击该用户条目。
6、勾选“完全控制”,点击“确定”;返回后再次点击“高级”,找到“网络服务”条目,同样赋予“完全控制”权限。
7、关闭注册表编辑器,重启系统。
四、启用并配置关键系统服务
Windows 更新依赖多个底层服务协同工作,若 Background Intelligent Transfer Service、Cryptographic Services 等未启用或启动类型非“自动”,将触发 0x80070005。
1、按 Win + R,输入 services.msc,回车打开服务管理器。
2、依次查找以下服务并双击打开其属性:
— Background Intelligent Transfer Service
— Cryptographic Services
— Windows Update
— Windows Installer
— Microsoft Software Shadow Copy Provider
— Volume Shadow Copy
3、对每一项,将“启动类型”设为 自动,若状态为“已停止”,点击“启动”按钮。
4、特别注意:若“Windows 备份”服务存在,也需设为自动并手动启动。
5、全部设置完成后,重启电脑。
五、清理 $WINDOWS.~BT 临时升级文件夹
当系统正在进行功能更新或版本升级时,$WINDOWS.~BT 文件夹会存储大量临时文件和权限元数据。若其 ACL 损坏,将导致后续更新操作被拒绝。
1、打开文件资源管理器,在地址栏直接输入:C:\$WINDOWS.~BT,按回车。
2、若该路径存在且可访问,全选其中所有子文件夹与文件。
3、按 Shift + Delete 永久删除(绕过回收站)。
4、如提示“需要提供管理员权限”,点击“继续”;如提示“某些项目无法删除”,记录具体路径,后续使用管理员 CMD 执行 takeown /f "路径" /r /d y & icacls "路径" /grant administrators:F /t 授权后重试。
5、完成删除后,再次运行 Windows Update。










