使用 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" indirlogs\cbs\cbs.log >"0serprofileDesktop\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 打开它找到替换文件提取出来。如果附近的同学或者朋友也使用相同的系统版本就更直接了。

此文章为武云煜原创,特此声明!

推荐阅读