Windows更新失败0x80070005怎么解决
时间:2026-03-01 11:36:48 101浏览 收藏
当Windows更新频繁报错0x80070005“访问被拒绝”时,别急着重装系统——这通常不是硬件或网络问题,而是系统底层权限链出现了断裂:从Windows Update服务、CBS注册表项、SYSTEM账户配置单元(S-1-5-20),到临时升级文件夹$WINDOWS.~BT的ACL异常,任一环节权限缺失都可能触发该错误;本文提供一套经实战验证的五步修复方案,涵盖重置更新组件、精准修复TrustedInstaller注册表权限、抢救关键SID配置、激活依赖服务及安全清理升级残留,步骤清晰、工具开源、操作可控,助你彻底摆脱更新失败困扰,让系统恢复稳定自动升级能力。

如果您在尝试安装 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。
终于介绍完啦!小伙伴们,这篇关于《Windows更新失败0x80070005怎么解决》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
163 收藏
-
441 收藏
-
284 收藏
-
256 收藏
-
239 收藏
-
472 收藏
-
307 收藏
-
396 收藏
-
267 收藏
-
418 收藏
-
108 收藏
-
254 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习