扫描并修复受保护的系统文件。
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
You must be an administrator running a console session:没有以管理员运行;打开“管理员: 命令提示符”再执行。sfc 在比对组件;不要关闭窗口。机械盘或低配机器可能超过 30 分钟。dism /online /cleanup-image /restorehealth,再执行 sfc /scannow。sfc 修不了驱动、用户配置、注册表和第三方软件;驱动问题用 driverquery/设备管理器,注册表问题用备份恢复。diskpart 确认分区,/offbootdir 指启动分区,/offwindir 指 Windows 目录;两者可能不同。C:\Windows\Logs\CBS\CBS.log,不是 sfc.log;日志很大,用 findstr /c:"[SR]" 过滤相关行。sfc 可能回滚近期手工替换的系统文件(例如替换过的 DLL),这是预期行为;生产服务器先在测试机验证并备份。chkdsk/SMART)、驱动和恶意软件,不要只重复 sfc。rpmverify — Linux 包文件完整性校验对照dpkg — Debian 包管理与校验对照boot-failure — 启动失败的排查路径合上页面,先回答,再展开对照。
sfc 报“发现损坏文件但无法修复部分文件”,下一步应该做什么?sfc 能修复驱动和注册表吗?sfc 时,/offbootdir 和 /offwindir 分别指什么?dism /online /cleanup-image /restorehealth 修复组件存储,再重新 sfc /scannow。driverquery,注册表用备份恢复。/offbootdir 是启动分区,/offwindir 是 Windows 目录,两者可能在不同盘符,先用 diskpart 确认。
小程序版
微信扫码,随时查命令