错误代码0x80070005源于system账户权限缺失,需依次重置windows更新组件、修复dcom中self账户访问权限、修正network service注册表权限,并重启生效。

Windows 更新失败并弹出错误代码 0x80070005,表示系统在尝试写入更新文件、调用服务或访问注册表时被明确拒绝访问,这通常不是权限不足的模糊提示,而是关键系统账户(如 NETWORK SERVICE 或 SELF)缺失对特定资源的控制权。
重置 Windows 更新组件和服务
这是最常见效的第一步,能清除损坏的缓存和卡死的服务状态。
以管理员身份运行命令提示符:右键“开始”→选择“Windows 终端(管理员)”→点击“是”确认 UAC 提示。
依次输入以下命令,每行执行完再敲回车:
net stop wuauserv → net stop bits → net stop cryptsvc → del /f /q %windir%\SoftwareDistribution\* → del /f /q %windir%\System32\catroot2\* → net start wuauserv → net start bits → net start cryptsvc
注意:第4、5行命令会强制删除两个核心更新缓存目录,【此操作不可逆,但系统会在下次检查更新时自动重建】。若提示“拒绝访问”,说明当前账户未真正获得管理员令牌,需退出所有账户重新登录后再试。
修复 DCOM 中 SELF 帐户访问权限
该错误在域环境或企业策略应用后高频出现,根源是 SELF 帐户被移除了对本地 DCOM 的基础访问权,导致 SLUI.exe(激活界面)和更新协调器无法正常通信。
方法一:图形化操作
按 Win+R,输入 dcomcnfg,回车打开“组件服务”。
左侧展开“组件服务 → 计算机 → 我的电脑”,右键→“属性”。
切换到“COM 安全性”选项卡,在“访问权限”区域点“编辑默认值”。
若列表中没有 SELF,点“添加”→在“输入对象名称”框中键入 SELF →点“检查名称”→“确定”。
选中刚添加的 SELF,勾选“本地访问”和“远程访问”,点“确定”两次关闭所有对话框。
方法二:命令行快速补全(适用于批量处理)
管理员终端中运行:cmd /c 'echo y | cacls "%windir%\system32\slui.exe" /e /g "NT AUTHORITY\SELF":F'
这条命令直接赋予 SELF 对 SLUI 执行文件的完全控制权,绕过图形界面限制,【跳过此步可能导致后续激活类更新仍报 0x80070005】。
修正网络服务(NETWORK SERVICE)注册表权限
当更新失败伴随“Windows 不是正版”黑屏背景时,大概率是 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-20 子项权限丢失,该路径专供 NETWORK SERVICE 账户读写用户配置状态。
第一步:打开注册表编辑器(regedit),导航至上述路径。
第二步:右键该子项 → “权限” → “高级” → “添加” → 输入 NETWORK SERVICE → “检查名称” → “确定”。
第三步:在下方权限列表中,勾选“完全控制”→“确定”→“确定”关闭所有窗口。
第四步:立即重启计算机。不重启则新权限不会加载进服务会话上下文,更新仍会失败。











