当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 DISM 检查和修复 Windows 映像

作者:精品下载站 日期:2024-12-14 23:15:52 浏览:13 分类:玩电脑

使用 DISM 检查和修复 Windows 映像


您可以使用SFC系统文件检查器)和DISM部署映像服务和管理)命令来检查和修复 Windows (Windows Server) 映像的系统文件和组件存储的完整性。如果您的 Windows 不稳定、无法启动、尝试运行内置应用程序或服务时出现错误、病毒感染后等,这些工具可能非常有用。

在本文中,我们将了解如何使用

SFC /ScanNow

,

DISM /Online /Cleanup-Image /RestoreHealth,

或者

Repair-WindowsImage -Online -RestoreHealth

用于修复 Windows 10/11 和 Windows Server 2022/2019/2016 上的映像和系统文件的命令。

SFC /ScanNow:使用系统文件检查器修复 Windows 系统文件

建议您在使用 SFC 工具检查系统文件的完整性后,使用 DISM 命令恢复 Windows。这

sfc /scannow

命令扫描受保护的系统文件,如果它们丢失或损坏,它会尝试在 Windows 组件存储(C:\Windows\WinSxS 文件夹)中恢复其原始副本版本。

SFC 工具将其所有活动写入

 %windir%\logs\cbs\cbs.log

。 CBS.log 文件中的所有 SFC 条目都带有 [SR] 标记。要从日志中仅选择与 SFC 相关的条目,请运行以下命令:

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

如果

sfc /scannow

命令返回错误“Windows 资源保护发现损坏的文件,但无法修复其中的某些文件”,该工具可能无法从 Windows 组件存储中获取必要的文件(请参见下图)。

[玩转系统] 使用 DISM 检查和修复 Windows 映像

在这种情况下,您可以尝试使用以下命令修复 Windows 映像的组件存储:

DISM.exe

命令。

DISM(部署映像服务和管理)工具适用于从 Vista 开始的所有 Windows 版本。

修复Windows映像后,您可以尝试使用SFC来恢复系统文件。

使用 DISM 检查 Windows 组件存储运行状况

DISM /Cleanup-Image /CheckHealth

开关用于扫描 Windows 映像中的错误并修复它们。 DISM 命令必须从提升的命令提示符运行。

运行以下命令检查 Windows 映像组件存储是否有任何损坏标志(不适用于 Windows 7/Server 2008R2)。此命令检查由系统维护进程之一设置的CBS 标志

DISM /Online /Cleanup-Image /CheckHealth

此命令不会对组件存储执行完整扫描。该命令仅检查您的 Windows 映像是否被标记为损坏以及是否可以修复它。不对图像进行任何更改。

[玩转系统] 使用 DISM 检查和修复 Windows 映像

在此示例中,命令返回 Windows 10 映像没有损坏:

No component store corruption detected.
The operation completed successfully.

要对 Windows 组件存储运行状况进行全面扫描,请运行以下命令:

DISM /Online /Cleanup-Image /ScanHealth

检查 Windows 映像的命令可能需要相当长的时间(10-30 分钟)。并将返回三个结果之一:

  • 未检测到组件存储损坏 - DISM 在组件存储中未发现错误;

  • 组件存储可修复 - DISM 在组件存储中遇到错误并可以修复它们;

  • 组件存储不可修复 - DISM 无法修复 Windows 组件存储(尝试使用较新版本的 DISM,否则您将必须从备份恢复 Windows 映像、重置或完全重新安装 Windows 实例)。

[玩转系统] 使用 DISM 检查和修复 Windows 映像

为了在 Windows 7 和 Windows Server 2008 上使用 DISM /ScanHealth 开关,您必须安装 KB2966583 更新。否则,您将看到消息:“错误 87。在此上下文中无法识别 ScanHealth 选项”。

在某些情况下,DISM /ScanHealth 返回以下错误:

  • DISM 错误 1726 -“远程过程调用失败”;

  • DISM 错误 1910 -“未找到指定的对象导出器”。

这绝对意味着您的 Windows 映像已损坏并且需要修复。

使用 DISM /RestoreHealth 修复 Windows 映像

要修复 Windows 映像组件存储中的损坏,必须使用 DISM 命令的 RestoreHealth 选项。此选项将允许您修复 Windows 映像中发现的错误,自动下载损坏或丢失组件的文件,并将其替换为 Windows 更新中的原始版本文件(您的计算机必须能够直接访问 Internet)。运行命令:

DISM /Online /Cleanup-Image /RestoreHealth

在 Windows 7/2008 R2 中,此命令看起来有所不同:

DISM.exe /Online /Cleanup-Image /ScanHealth

扫描和修复组件存储的过程可能需要相当长的时间(30 分钟或更长时间)。 DISM 将自动从 Windows 更新服务器下载损坏或丢失组件的文件并将其替换为原始文件版本。

如果修复成功,将出现以下消息:

The restore operation completed successfully.

[玩转系统] 使用 DISM 检查和修复 Windows 映像

DISM /RestoreHealth:找不到源文件

如果您的计算机(服务器)无法直接访问 Internet(位于代理后面,或使用内部 WSUS 来获取安全性和构建更新)或 Windows Update 服务被禁用/损坏(如何修复 Windows Update 客户端),则在修复组件存储时会出现以下错误:

  • 0x800f0906 - 无法下载源文件。使用source选项指定恢复功能所需的文件的位置;

  • 0x800f0950 - DISM 失败。没有进行任何操作;

  • 0x800F081F - 找不到源文件。使用“源”选项指定恢复功能所需的文件的位置。

[玩转系统] 使用 DISM 检查和修复 Windows 映像

在所有这些情况下,您可以使用其他方法来获取源组件存储文件。有可能:

  • 安装盘/U盘/ISO镜像;

  • 挂载wim/esd文件;

  • 安装盘中的文件夹\sources\SxS;

  • 包含 Windows 安装映像的 install.wim (esd) 文件。

您可以指定带有原始 Windows 安装映像的 WIM 或 ESD 文件作为修复系统文件的源。假设您已将 Windows 11 安装 ISO 挂载到虚拟驱动器 D: 上。

注意。要从本地源修复组件存储中损坏的文件,WIM/ESD 映像中的 Windows 内部版本和版本必须与您的系统相匹配。

使用以下 PowerShell 命令检查计算机上安装的 Windows 版本:

Get-ComputerInfo |select WindowsProductName,WindowsEditionId,WindowsVersion, OSDisplayVersion

[玩转系统] 使用 DISM 检查和修复 Windows 映像

列出安装 wim 映像中可用的 Windows 版本:

Get-WindowsImage -ImagePath "D:\sources\install.wim"

在我们的例子中,install.wim 文件中的 Windows 11 Pro 映像具有

ImageIndex = 6

[玩转系统] 使用 DISM 检查和修复 Windows 映像

要使用本地源文件从本地 WIM/ESD 文件修复组件存储(不使用 Windows 更新在线服务),请运行以下命令(请记住在映像文件中指定 Windows 版本索引):

DISM /online /cleanup-image /restorehealth /source:WIM:D:\sources\install.wim:6 /limitaccess

或者:

DISM /online /cleanup-image /restorehealth /source:ESD:D:\sources\install.esd:6 /limitaccess

[玩转系统] 使用 DISM 检查和修复 Windows 映像

运行 DISM /RestoreHealth 命令时可能会出现以下错误:

  • 错误:50:DISM 不支持使用 /Online 选项为 Windows PE 提供服务 - 这意味着您的 DISM 认为您正在使用 WinPE 映像。要解决此问题,请删除注册表项

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT

    ;

  • DISM 错误 87:确保 DISM 命令编写正确,确保您使用的 DISM 版本适合您的 Windows 版本(通常在 WinPE/WinRE 中启动时)。

您可以在此处找到扫描和修复系统文件的 DISM 日志:

C:\Windows\Logs\CBS.log

组件存储修复后,您可以运行系统文件检查工具(

sfc /scannow

)。它很可能能够恢复损坏或丢失的系统文件(Windows 资源保护发现损坏的文件并成功修复它们)。

[玩转系统] 使用 DISM 检查和修复 Windows 映像

如果 SFC.exe 没有检测到系统文件有任何损坏,则会出现一条消息

Windows Resource Protection did not find any integrity violations.

Repair-WindowsImage:使用 PowerShell 修复 Windows Image 组件存储

Windows 10/11 和 Windows Server 2016/2019/2022 中的 PowerShell 版本具有与上面讨论的 DISM 命令类似的 cmdlet。要扫描 Windows 组件存储并查找任何损坏,请运行以下命令:

Repair-WindowsImage -Online -ScanHealth

[玩转系统] 使用 DISM 检查和修复 Windows 映像

如果在组件存储中未发现错误,则会显示以下消息:

ImageHealth State: Healthy

要修复 Windows 组件存储文件,请运行:

Repair-WindowsImage -Online -RestoreHealth

如果您无法直接访问互联网,则此命令可能会在映像修复过程中挂起。您可以通过从 Windows 10 安装 ISO 映像复制的本地 Windows 映像文件 (install.wim/install.esd) 还原系统组件。这里还需要指定wim文件中的Windows版本索引作为恢复源:

Repair-WindowsImage -Online -RestoreHealth -Source F:\sources\install.wim:5 -LimitAccess

使用 DISM 离线修复 Windows 映像

如果 Windows 无法正常启动,您可以使用 DISM 离线检查和修复 Windows 映像的系统文件。

如果安装更新后 Windows 无法启动,请先尝试根据指南卸载最新更新。

  1. 从 Windows 安装映像启动您的设备(您可以使用媒体创建工具创建可启动的 Windows USB 记忆棒),然后按

    Shift + F10

    在初始 Windows 安装屏幕上;

  2. 要检查 WinPE 中分配的驱动器号,请运行命令

    diskpart 

    ->

    list vol

    (在我的示例中,驱动器号 C:\ 被分配给安装 Windows 的磁盘,我将在接下来的命令中使用它);

    [玩转系统] 使用 DISM 检查和修复 Windows 映像

  3. 检查系统文件并使用以下命令修复损坏的文件:

    sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows

    [玩转系统] 使用 DISM 检查和修复 Windows 映像

  4. 要修复脱机 Windows 映像,请使用以下命令(我使用包含 Windows 10 安装映像的 WIM 文件,计算机从该文件启动作为恢复脱机 Windows 映像的源):

    Dism /image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim

    [玩转系统] 使用 DISM 检查和修复 Windows 映像

  5. 如果目标磁盘上没有足够的可用空间,您将需要一个单独的驱动器,例如。例如,F:\,您将在其中创建一个空文件夹

    mkdir F:\scratch

    。使用暂存目录和以下命令执行组件存储修复:

    Dism /image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim /ScratchDir:F:\scratch

提示。 以下是管理员必须了解的一些有用的 DISM 参数:

  • DISM /Add-Package

    - 安装 MSU/CAB 更新文件,将安全更新集成到您的 Windows 映像中;

  • DISM /Get-Drivers

    - 获取已安装驱动程序的列表;

  • DISM /Add-Driver

    - 将驱动程序注入 Windows 安装映像;

  • DISM /Add-Capability

    - 通过按需功能 (FoD) 安装附加 Windows 功能。例如,RSAT、OpenSSH 服务器或 Windows SSH 客户端);

  • DISM /Enable-Features

    /Disable-Features

    - 启用和禁用 Windows 组件(例如 SMBv1 协议);

  • Dism.exe /StartComponentCleanup

    - 清理组件存储并删除旧组件版本(从 WinSxS 文件夹);

  • Dism /set-edition

    - 从评估版升级到完整 Windows 版本,无需重新安装。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯