提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!

今天Windows 8.1系统的电脑突然卡住并且自动重启,通过事件查看器得到的资料有限,初步怀疑是系统文件受损导致,于是通过经典的 sfc /scannow 验证系统并修复受损文件,但是得到以下提示:

开始系统扫描。此过程将需要一些时间。

开始系统扫描的验证阶段。
验证 100% 已完成。

Windows 资源保护找到了损坏文件但无法修复
其中某些文件。CBS.Log windir\Logs\CBS\CBS.log 中有详细信息。
例如 C:\Windows\Logs\CBS\CBS.log。请注意,在脱机服务方案中,
当前不支持日志记录。

意思是找到了受损文件,但是 sfc 命令无法修复,没有找到关于无法修复的具体原因,打开 C:\Windows\Logs\CBS\CBS.log 文件后发现此日志记录的信息比较杂,不过我们可以通过Windows+X+A组合按键启动 管理员权限 的CMD控制台,然后运行以下命令直接输出受损文件详情到桌面 sfcdetails.txt 文件中:

findstr /C:"[SR] Cannot repair member file" %windir%\logs\cbs\cbs.log >"%userprofile%\Desktop\sfcdetails.txt"

通过以上命令,我得到了下面的输出:

2016-05-15 10:43:43, Info                  CSI    000005f4 [SR] Cannot repair member file [l:36{18}]"Amd64\CNBJ2530.DPB" of prncacla.inf, Version = 6.3.9600.17415, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type = [l:24{12}]"driverUpdate", TypeName neutral, PublicKey neutral in the store, hash mismatch
2016-05-15 10:43:46, Info                  CSI    000005f6 [SR] Cannot repair member file [l:36{18}]"Amd64\CNBJ2530.DPB" of prncacla.inf, Version = 6.3.9600.17415, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type = [l:24{12}]"driverUpdate", TypeName neutral, PublicKey neutral in the store, hash mismatch
2016-05-15 10:47:46, Info                  CSI    00000980 [SR] Cannot repair member file [l:36{18}]"Amd64\CNBJ2530.DPB" of prncacla.inf, Version = 6.3.9600.17415, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type = [l:24{12}]"driverUpdate", TypeName neutral, PublicKey neutral in the store, hash mismatch
2016-05-15 10:47:47, Info                  CSI    00000982 [SR] Cannot repair member file [l:36{18}]"Amd64\CNBJ2530.DPB" of prncacla.inf, Version = 6.3.9600.17415, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type = [l:24{12}]"driverUpdate", TypeName neutral, PublicKey neutral in the store, hash mismatch

这里仅仅是知道了文件 Amd64\CNBJ2530.DPB 受损,但是sfc无法修复又有什么用呢,不过通过这篇文章 《通过sfc功能无法修复,提示"windows 资源保护找到了损坏文件但无法修复" 》 找到了另外一种修复的方式,那就是在 联网 的情况下通过以下命令来实现:

DISM.exe /Online /Cleanup-image /Scanhealth
DISM.exe /Online /Cleanup-image /Restorehealth

依然通过Windows+X+A组合按键启动 管理员权限 的CMD控制台,然后以上命令以行为单位逐条输入并按下回车,稍等片刻后即可,完成修复后,可以再次使用 sfc /scannow 检查,幸运的是以这种方式也是可以成功修复受损文件的,如下图所示。

DISM修复

希望对遇到同样问题的朋友有所帮助。

参考文档:

使用系统文件检查器工具修复丢失或损坏的系统文件