使用 sfc 命令修復系統文件

做遠程技術的時候經常會碰到,客戶電腦被病毒損壞系統文件後不能正常進入系統,或者反反覆覆的修復系統,然而工作電腦安裝了一大堆的軟件程序以及數據,這時候又不能重裝系統,實在是麻煩,所以只好想一些辦法把系統修復看看了。

CMD 管理員的模式運行,然後輸入命令 sfc /scannow,這時候系統自動開始掃描,這個命令是用來系統的檢查原始鏡像裡安裝系統文件是否有損壞。這個步驟結束後會有兩種提示:

第一種:

Windows 資源保護找到了損壞文件併成功修復了它們。

CBS.Log windir\Logs\CBS\CBS.log 中有詳細信息。例如

C:\Windows\Logs\CBS\CBS.log

系統文件修復更改在下次重新啟動之後生效。

第二種:

Windows 資源保護找到了損壞文件但無法修復

其中某些文件。CBS.Log windir\Logs\CBS\CBS.log 中有詳細信息。

例如 C:\Windows\Logs\CBS\C。請注意,在脫機服務方案中,

當前不支持日誌記錄。BS.log

既然上面的操作步驟已經把損壞的系統文件以日誌方式生成,那就好辦多了。我們開始執行手動修復!

現列出上面掃描出來的文件,cmd 命令輸入:

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

執行後會在自己的桌面生成 sfcdetails.txt,打開它可以定位到無法修復的文件,一般損壞文件名稱會出現於關鍵字在 Cannot repair member file 後面類似 jscript.dll 的就是無法修復的文件。

這時候我們就開始把損壞的系統文件替換掉,先把好的文件提取出來。未被損壞的文件只能從當前系統版本對應系統鏡像中提取,比如提取 C:\windows\system32\jscript.dll。

假設已經把文件提取完成,

先獲取管理權 takeown /f 損壞文件路徑。

takeown /f C:\windows\system32\jscript.dll

使用 sfc 命令修復系統文件

再獲取完全訪問權限

icacls C:\windows\system32\jscript.dll /grant administrators:F

使用 sfc 命令修復系統文件

然後替換,

假設好文件放在 C 盤根目錄 CMD 命令輸入

copy C:\jscript.dll C:windows\system32\jscript.dll

提醒:原版未被損壞的文件,建議從同版本的原生系統 ISO 鏡像,解壓路徑:鏡像/sources/install.wim, 再用 7z 打開它找到替換文件提取出來。如果附近的同學或者朋友也使用相同的系統版本就更直接了。


分享到:


相關文章: