系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

sfc

扫描并修复受保护的系统文件。

补充说明

sfc(System File Checker)扫描 Windows 受保护的系统文件,把损坏或版本错误的文件用组件存储(WinSxS)中的副本替换。它适合处理系统文件被替换、蓝屏后文件损坏、更新失败、某些系统工具无法启动等问题。

边界:它只覆盖受保护的系统文件,不修驱动、用户配置、注册表或第三方软件。sfc 的修复源是本地组件存储,如果组件存储本身损坏,sfc 会报“无法修复某些文件”,这时要先跑 DISM。sfc /scannow 通常需要 10–30 分钟,进度长时间停在 20%/50% 并不罕见。

Windows 10/11 行为一致。PowerShell 里仍调用 sfc.exe,需要管理员终端;没有等价的原生 cmdlet。离线修复要在 WinRE 中运行,盘符与正常系统不同,必须先确认。

影响范围:sfc 会用组件存储中的副本替换损坏的系统文件,可能要求重启;修复期间不要中断。前置条件:管理员权限、足够磁盘空间和停机窗口;先备份重要数据并创建还原点。恢复方式:sfc 一般不需要回滚,但若修复后出现异常,可用系统还原或备份恢复;组件存储损坏时先用 DISM 修复源,再跑 sfc。

常用示例

# 1. 全盘扫描并自动修复受保护的系统文件(管理员)
sfc /scannow

# 2. 只验证不修复,先判断有没有问题
sfc /verifyonly

# 3. 只检查/修复指定文件,缩小排障范围
sfc /scanfile=C:\Windows\System32\notepad.exe
sfc /verifyfile=C:\Windows\System32\notepad.exe

# 4. 组件存储损坏时,先用 DISM 修复源,再跑 sfc
dism /online /cleanup-image /restorehealth
sfc /scannow

# 5. 在 WinRE 里离线修复:盘符以 WinRE 中实际为准
sfc /offbootdir=D:\ /offwindir=D:\Windows /scannow

# 6. 从 CBS 日志确认修复了哪些文件
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. sfc 报“发现损坏文件但无法修复部分文件”,下一步应该做什么?
  2. sfc 能修复驱动和注册表吗?
  3. WinRE 离线运行 sfc 时,/offbootdir 和 /offwindir 分别指什么?
答案
  1. 先 dism /online /cleanup-image /restorehealth 修复组件存储,再重新 sfc /scannow。
  2. 不能,只修受保护的系统文件;驱动用设备管理器/driverquery,注册表用备份恢复。
  3. /offbootdir 是启动分区,/offwindir 是 Windows 目录,两者可能在不同盘符,先用 diskpart 确认。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令