Windows 系统修复指南 P2 “DISM 与 SFC

Windows 系统修复指南 P2 “DISM 与 SFC”

此文档针对 Windows 10 22H2 以及 Windows 11 24H2 版本制作,主要基于 Windows 10 22H2 制作

在使用过程中,会遇到系统出现蓝屏、死机等影响系统正常使用的情况,通常情况下可以使用 Windows 自带的修复功能进行修复;以下列举在不同环境下的修复方案。

若方案无法解决,可以前往 微软社区 在内发表问题寻求帮助。

DISM 与 SFC

介绍

DISM

部署映像服务和管理 (DISM) 是一个命令行工具,用于为 Windows 映像提供服务。 可以使用 DISM 映像管理命令来装载和获取有关 Windows 映像 (.wim) 文件、Full-Flash Utility 文件或虚拟硬盘 (VHD) 的信息。 还可以使用 DISM 来捕获、拆分以及以其他方式管理 .wim 文件。
可以使用 DISM 服务命令来安装、卸载、配置及更新 .wim 文件、.ffu 文件或 VHD 中的 Windows 功能、包、驱动程序和国际设置。
DISM 命令可用于脱机映像,部分 DISM 命令也可用于运行的操作系统。
DISM 随 Windows 一起安装,也在 Windows 评估和部署工具包 (Windows ADK) 中分发。 DISM 取代了几种部署工具,其中包括 PEimg、Intlcfg、ImageX 和包管理器。[1]

从系统修复的角度来说,DISM 是通过联网扫描 WinSxS 文件夹,查看是否有异常,并进行修复,而 WinSxS 文件夹,全称为 Windows Side-by-Side 文件夹,是 Windows 操作系统中的一个核心组件;他的功能主要有以下三种:

  • 组件存储: WinSxS 是 Windows 的组件存储库,里面存放了系统运行所需的所有文件和组件。无论是操作系统的基本文件、系统更新、补丁,还是新功能的安装文件,都可以在这个文件夹中找到。
    • 支持系统更新和修复: 当系统需要安装更新、修复损坏的系统文件或者回滚到以前的组件版本时,WinSxS 都提供了必要的文件支持。例如,当使用 DISM 或 SFC 工具修复系统时,它们会从 WinSxS 中提取需要的文件。
  • 实现版本共存: 为了避免因为更新而导致应用程序不兼容,WinSxS 文件夹允许同一组件的多个版本并存,这样即使某个组件更新后出现问题,系统或特定程序仍可调用旧版本。

SFC

扫描并验证所有受保护系统文件的完整性,并将错误的版本替换为正确的版本。 如果此命令发现受保护的文件已被覆盖,则它会从 systemroot\ 文件夹中检索文件的正确版本,然后替换错误的文件。[2]

SFC 是“系统文件检查器”(System File Checker)的缩写。它是 Windows 操作系统中的一个工具,用于扫描并修复操作系统中的损坏或丢失的系统文件。通过运行 SFC 命令,用户可以自动修复一些可能导致系统不稳定或程序崩溃的错误文件。

两者区别

  • DISM:用于修复和维护 Windows 映像(如操作系统的安装映像)。它可以修复系统的底层问题,包括损坏的 Windows 系统文件、驱动程序等,甚至可以在 Windows 处于正常启动状态时修复系统映像。
  • SFC:主要用于扫描和修复 Windows 系统中的损坏或丢失的文件,特别是关键的系统文件。它使用一个名为 sfc.dll 的文件来检查并修复损坏的系统文件。SFC 主要作用于修复 Windows 系统文件,例如 .dll、.exe 文件等。

一般来讲 DISM 比 SFC 修复更加全面,但依然推荐在 DISM 修复后再使用 SFC,其中很重要的一个原因是 SFC 需要依赖一个没有异常的镜像, DISM 可以检测并修复异常镜像;同时也可以直接使用 SFC 扫描修复而不使用 DISM 修复

操作方式

打开 Powershell

  1. 右键 Win 徽标或同时按下 Win + X 键,点击 命令提示符(管理员)[Windows 10]
    右键 Win 徽标或同时按下 Win + X 键,点击 Windows 终端(管理员)[Windows 11]
  2. 通过搜索栏搜索 Powershell 并选择以管理员身份运行
  3. 按下 Win + R 键,并输入 Powershell 回车,按下 Ctrl + Shift + Enter 键或输入Start-Process PowerShell -Verb RunAs 并回车

注:不论任何情况下应该在拥有管理员权限下的 Powershell 窗口运行命令

DISM

命令操作:

  1. 首先输入 DISM /Online /Cleanup-Image /CheckHealth 并回车
    作用:检查 Windows 映像是否已经被标记为损坏。
  2. 等待上一条运行完成后输入 DISM /Online /Cleanup-Image /ScanHealth 并回车
    作用:对映像进行全面扫描,以确定是否存在组件存储的损坏
  3. 等待上一套运行完成后输入 DISM /Online /Cleanup-Image /RestoreHealth 并回车
    作用:在扫描发现问题后,尝试修复 Windows 映像中的损坏部分。

    • 也可以在挂在镜像文件后使用 DISM /Online /Cleanup-Image /RestoreHealth /Source:"D:\Sources\install.wim:1" /LimitAccess 指定修复文件来源进行修复

以上解决方案是用于联网状态下;若电脑未联网可以尝试使用离线镜像进行修复,您需要拥有离线镜像文件才可以进行修复

命令操作:

  1. 首先确保离线镜像的位置
  2. 输入 DISM /Mount-WIM /WimFile:"C:\\{Path}\\{name}.wim" /MountDir:"C:\Mount" 并回车
    作用:挂在镜像
  3. 输入 DISM /Image:"C:\Mount" /Cleanup-Image /RestoreHealth 并回车
    作用:对挂载的映像执行修复或添加包操作
  4. 输入 DISM /Unmount-WIM /MountDir:"C:\Mount" /Commit 并回车
    作用:卸载映像并保存更改

操作完成后可以选择继续进行 SFC 扫描修复或者直接重启电脑

SFC

命令操作:

  1. 输入 sfc /scan now 并回车

等操作完成后直接重启电脑


[1] “使用 DISM 启用或禁用 Windows 功能”. Windows Learn. 23 Feb 2025
[2] “Windows 命令”. Windows Learn. 24 Feb 2025

阅读剩余
THE END