必须先启用windows modules installer服务,再依次执行dism /scanhealth、/restorehealth修复winsxs映像,最后运行sfc /scannow验证;若在线失败则指定iso或本地windows目录为源,安全模式下仅可运行sfc。

当 Windows 系统运行 sfc /scannow 后提示“发现损坏文件但无法修复”或“Windows 资源保护无法执行请求的操作”,说明底层组件映像(WinSxS)已损坏,SFC 失去健康文件源,单纯重试无效,必须先修复映像再校验。
确认并启用关键服务
Windows Modules Installer 服务是 DISM 和 SFC 的底层支撑。若被禁用,所有修复命令都会失败或报“无法启动修复服务”。【该服务必须处于“正在运行”状态,否则后续所有命令均无效】
按 Win + R → 输入 services.msc → 回车 → 在列表中找到“Windows Modules Installer” → 右键 → “属性” → 将“启动类型”设为“手动” → 点击“启动”按钮 → 确保“服务状态”显示为“正在运行”。
用 DISM 在线修复系统映像
这是最常用、最优先尝试的方法,适用于网络通畅、Windows Update 正常的情况。DISM 会从微软服务器下载正确文件,重建 WinSxS 中的健康副本。
以管理员身份打开终端(PowerShell 或 CMD)→ 执行:DISM /Online /Cleanup-Image /ScanHealth → 等待扫描完成(通常 1–3 分钟)→ 再执行:DISM /Online /Cleanup-Image /RestoreHealth → 等待显示“操作成功完成” → 立即运行 sfc /scannow 验证。
这一步不能跳过扫描直接修复;若跳过,DISM 可能跳过实际损坏区域,导致修复不彻底。
指定本地安装源进行 DISM 修复
当在线修复卡在“部署映像服务和管理工具”无进度、提示“找不到源”或超时失败,说明 Windows Update 通道异常,必须换可信本地源。
方法一:使用挂载的 ISO 镜像
将 Windows 官方 ISO 双击挂载(如分配为 D: 盘)→ 确认 D:\sources\ 下存在 install.wim 或 install.esd → 管理员终端执行:DISM /Online /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim:1 /LimitAccess(若为 esd,把 wim 替换为 esd)。
创建并管理 Docker 沙箱虚拟机环境以安全执行代理。适用于运行不受信任代码、探索包或隔离代理工作负载。支持 Claude、Codex、Copilot、Gemini 和 Kiro 代理,并提供网络代理控制。
方法二:使用本地完整 Windows 目录作源
确保该目录含 Windows\System32 和 Windows\Servicing 子目录 → 管理员终端执行:DISM /Online /Cleanup-Image /RestoreHealth /Source:E:\Win10\Windows /LimitAccess(E:\Win10 替换为你的实际路径)。
在安全模式下执行 SFC
部分系统文件(如内核驱动、注册表 hive)在常规启动状态下被进程独占锁定,SFC 无法读取或覆盖。安全模式仅加载最小必要组件,可解除多数文件占用。
第一步:进入安全模式
① 按 Win + I → “系统” → “恢复” → “高级启动” → “立即重新启动”
② 重启后进入恢复环境 → “疑难解答” → “高级选项” → “启动设置” → “重启”
③ 重启后连续按 F4 键 → 进入“安全模式(不带网络)”
第二步:运行修复
登录后右键“开始”按钮 → “终端(管理员)” → 执行 sfc /scannow。
注意:不要在安全模式下运行 DISM;DISM 依赖大量后台服务,安全模式下可能报错或静默失败。
检查磁盘与注册表基础状态
若以上步骤仍失败,需排除更底层问题:
运行 chkdsk C: /r(C: 替换为系统盘)→ 输入 Y → 重启后自动执行磁盘修复。坏道或文件系统错误会导致 SFC 读取失败。
若终端报“注册表数据库损坏”,需谨慎处理:【修改 RegistrySizeLimit 值有风险,仅在明确诊断为注册表项数溢出时才操作,且必须提前导出备份】 → 按 Win + R → 输入 regedit → 导航至 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control → 右侧空白处右键新建 DWORD (32 位) 值 → 命名为 RegistrySizeLimit → 双击修改数值数据为 ffffffff(8 个 f,十六进制)→ 重启。










