1. 程式人生 > >解決Windows 資源保護找到了損壞檔案但無法修復問題

解決Windows 資源保護找到了損壞檔案但無法修復問題

今天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修復