今天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
检查,幸运的是以这种方式也是可以成功修复受损文件的,如下图所示。