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

应用对象
Windows 8.1 Windows 8.1 Enterprise Windows 8.1 Pro Windows 8 Windows 8 Enterprise Windows 8 Pro Windows 7 Enterprise Windows 7 Home Basic Windows 7 Home Premium Windows 7 Professional Windows 7 Starter Windows 7 Ultimate Windows Vista Enterprise 64-bit Edition Windows Vista Ultimate 64-bit Edition Windows Vista Business Windows Vista Business 64-bit Edition Windows Vista Enterprise Windows Vista Ultimate Windows 10 Windows 11

当关键的 Windows 系统文件丢失或损坏时,操作系统可能会开始出现故障。 常见症状包括 Windows 功能无法正常工作、系统错误或 Windows 无响应或冻结。

如果遇到这些问题,可以使用内置的 Windows 修复工具(部署映像服务和管理 (DISM) 和系统文件检查器 (SFC) )扫描损坏的系统文件并还原丢失或损坏的 Windows 组件,帮助使系统恢复稳定、工作状态。

步骤 1:运行 DISM

DISM 提供修复损坏的文件所需的文件。  应在运行系统文件检查器之前运行 DISM。  要执行此操作:

  1. 打开提升的命令提示符。

    1. cmd在“搜索”框中键入 。
    2. 在搜索结果中,右键单击“命令提示符”,然后选择“以管理员身份运行”
    3. 如果系统提示确认或管理员密码,请键入密码,或单击“ 允许”。
  2. “命令提示符” 窗口中,键入以下命令,然后按 Enter。  命令操作可能需要几分钟才能完成。

DISM.exe /Online /Cleanup-image /Restorehealth

提示

  • DISM 使用 Windows 更新 作为源来提供必要的文件。 但是,如果Windows 更新客户端损坏,则可以使用正在运行的 Windows 安装或来自网络共享或可移动媒体(如 Windows DVD)的 Windows 并行文件夹作为文件的源。 为此,请改为运行以下命令:
  • DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:C:\RepairSource\Windows /LimitAccess
  • 在上述命令中,将 C:\RepairSource\Windows 占位符替换为修复源的位置。  有关使用 DISM 工具修复 Windows 的详细信息,请参阅 修复 Windows 映像

步骤 2:运行系统文件检查器

“命令提示符” 窗口中,键入以下命令,然后按 Enter:

sfc /scannow

具有管理员权限的命令提示符 - sfc /scannow  
 

警告

在验证 100% 完成之前,请勿关闭此命令提示符窗口。

该 sfc /scannow 命令将扫描所有受保护的系统文件,并将损坏的文件替换为缓存的副本。  此流程完成后将显示扫描结果。 你可能会收到以下消息之一:

扫描结果消息 相应操作
Windows 资源保护找不到任何完整性冲突。 没有任何丢失或损坏的系统文件。
Windows 资源保护无法执行请求的操作。 若要解决此问题,请在 安全模式下执行系统文件检查器扫描。
确保 PendingDeletesPendingRenames 文件夹位于 %WinDir%\WinSxS\Temp 下。
%WinDir% 占位符表示 Windows 操作系统文件夹,例如 C:\Windows。
Windows 资源保护找到了损坏的文件并已成功将其修复。 此操作成功。
若要查看有关系统文件扫描和还原的详细信息,请转到 如何查看系统文件检查器进程的详细信息
Windows 资源保护找到了损坏的文件但无法修复其中的某些文件。 若要手动修复损坏的文件,请查看系统文件检查器进程的详细信息查找损坏的文件,然后手动将损坏的文件替换为已知完好的文件副本

详细信息

如何查看系统文件检查器进程的详细信息

查看 CBS 中包含的详细信息。日志文件 ,请按照以下步骤将日志中的信息复制到桌面上的可查看文本文件:

  1. 如前所述,打开提升的命令提示符。

  2. “命令提示符” 窗口中,在一行) 上键入以下命令 (,然后按 ENTER:

    findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfcdetails.txt" 
    

    注意

    Sfcdetails.txt 文件包含每次在计算机上运行系统文件检查器工具时的详细信息。 文件包括有关系统文件检查器工具未修复文件的信息。 验证日期和时间项以确定该问题文件为你上次运行系统文件检查器工具时找到的文件。

  3. 从桌面打开 Sfcdetails.txt 文件。

  4. Sfcdetails.txt 文件使用以下格式:
    日期/时间 SFC 详细信息 以下示例日志文件包含无法修复的文件的条目:2007-01-12 12:10:42,信息 CSI 00000008 [SR] 无法修复辅助功能的成员文件 [l:34{17}]“Accessibility.dll” 版本 = 6.0.6000.16386,pA = PROCESSOR_ARCHITECTURE_MSIL (8) ,Culture neutral,VersionScope neutral,PublicKeyToken = {l:8 b:b03f5f7f11d50a3a},Type neutral,TypeName neutral, 存储中没有 PublicKey,文件缺失

如何手动将损坏的系统文件替换为已知完好的文件副本

查看日志文件以确定哪个系统文件已损坏且无法修复后,找到损坏的文件所在的位置,然后手动将损坏的文件替换为该文件的已知良好副本。

为此,请按照以下说明进行操作。  在以下命令中 <Path_And_File_Name> ,占位符表示损坏文件的路径和文件名。

注意

你可以从运行与你的计算机相同的 Windows 版本的另一台计算机获取系统文件的已知良好副本。 你可能希望在该计算机上执行系统文件检查器进程,以确保要复制的系统文件是一个良好的副本。

步骤 1:获取损坏的系统文件的管理所有权。

在提升的命令提示符中键入以下命令,然后按 Enter:

takeown /f <Path_And_File_Name>

示例:

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

具有管理员权限的命令提示符 - 命令成功

步骤 2:授予管理员对损坏的系统文件的完全访问权限。

键入以下命令,然后按 Enter:

icacls <Path_And_File_Name> /grant administrators:F

示例:

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

具有管理员权限的命令提示符

步骤 3:将损坏的系统文件替换为该文件的已知良好副本。

键入以下命令,然后按 Enter:

Copy <Source_File> <Destination>

在上述命令中,将 <Source_File>占位符替换为计算机上文件已知正常副本的路径和文件名,并将占位符替换为 <Destination> 已损坏文件的路径和文件名。

示例:

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

如果上述步骤不起作用,则可能需要重新安装 Windows。 有关详细信息,请参阅 Windows 中的恢复选项。