# DISM 与 SFC：正确顺序，以及怎么读结果

> 按正确顺序运行 DISM CheckHealth/ScanHealth/RestoreHealth 和 SFC /scannow，读 CBS/DISM 日志，避开常见误区。

**测试环境**

- 版本号: 26300.9457
- 版本: Pro (26H2)
- 架构: x64
- 证据: E1
- 核验日期: 2026-10-28

## 一句话结论

先 **DISM**，再 **SFC**：

```bat
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
```

`CheckHealth` 快速读标志，`ScanHealth` 扫描，`RestoreHealth` 用 Windows Update/源修复。组件存储健康后，SFC 修受保护系统文件。

用**管理员**提示符。非管理员 SFC 会拒绝或给出误导结果。

## 各自做什么

| 命令 | 工作 | 时间 | 改系统？ |
|---|---|---|---|
| `DISM /CheckHealth` | 报告已知损坏 | 秒级 | 否 |
| `DISM /ScanHealth` | 扫描组件存储 | 分钟 | 否 |
| `DISM /RestoreHealth` | 修复存储 | 10–30+ 分钟 | 是 |
| `sfc /scannow` | 修复受保护系统文件 | 5–20 分钟 | 是 |

## 读结果

- **未检测到组件存储损坏**：好，继续 SFC。
- **组件存储可修复**：跑 RestoreHealth。
- **找不到源文件**：DISM 需要匹配源（ISO/install.wim）或 Windows Update 访问。
- **发现并修复损坏文件**：SFC 修了；重启复测。
- **发现违规但无法修复**：读 CBS.log；文件可能属于某个包/更新。

不要把一次 SFC 通过当成没有恶意软件的证明。SFC 查文件完整性，不查意图。

## 离线修复

Windows 不能启动时，WinRE 指向离线映像：

```bat
DISM /Image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim /LimitAccess
```

索引必须匹配已安装版本（家庭/专业/企业）。索引错 = 文件错。WinRE 里挂 ISO，用正确盘符。

## 日志

- `C:\Windows\Logs\CBS\CBS.log`
- `C:\Windows\Logs\DISM\dism.log`

搜 `error`、KB 号或组件名。20MB 的 CBS 日志正常；用 `Select-String` 或日志查看器，不要用记事本滚。

> **警告: 不要循环跑 sfc /scannow**
>
> SFC 修不了的文件，跑十次也不会变。读 CBS.log 修源/包。服务运行时也不要删 CBS 日志。

## 什么时候停止修复

DISM 和 SFC 都报不可恢复损坏，或磁盘有错误，就停。备份、`chkdsk /scan`，考虑重置/重装。坏盘上反复修复是浪费时间、冒数据风险。

## 来源

- [Microsoft — DISM /RestoreHealth](https://learn.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/dism-operating-system-package-servicing-command-line-options)
- [Microsoft — SFC](https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/sfc)
- [Microsoft — CBS 日志](https://learn.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/windows-setup-log-files-and-command-line-options)

---

来源页面: https://winbook.fyi/zh/windows/fixes/dism-sfc/
