如何使用 DISM 命令修复 Windows 映像

DISM:一款高级 Windows 修复工具

部署映像服务和管理 (DISM) 是一款强大的工具,专门用于扫描并修复 Windows 操作系统的各种问题,无论是在线还是离线状态下,它都能发挥重要作用。

什么是DISM命令?

你是否在使用Windows 8、8.1、10或11时遇到了诸如蓝屏、应用程序意外崩溃或功能失效等问题? DISM,作为Windows内置的命令行实用程序,可以直接从微软的在线服务器修复损坏的Windows操作系统文件和功能,为你的系统保驾护航。

它不仅能处理当前运行的操作系统,还能处理.wim、.vhd或.vhdx格式的离线Windows映像,解决各种潜在的问题。 你可以通过命令行或Windows PowerShell来使用DISM。

系统管理员常常借助DISM来维护、迁移和创建新的系统映像,尤其是在Windows PE(预安装环境)、Windows RE(恢复环境)和Windows安装过程中,它都是不可或缺的工具。

自2012年首次在Windows 8和Windows Server 2012 R2中引入以来,DISM已经成为所有现代Microsoft操作系统的一部分,它的出现大大提升了系统的稳定性和可靠性。

另一个用于修复损坏的Windows文件的工具是系统文件检查器(sfc.exe)。然而,sfc.exe会将损坏的文件与系统保存的.wim存储进行比较;如果后者也损坏,sfc.exe可能就无能为力了。而DISM工具有效地解决了这个问题。它依靠微软更新服务器上保存的原始副本,能够扫描和修复.wim存储。

接下来,我们将深入探讨一些DISM命令,以及它们在PowerShell和Windows命令行中如何被实际应用,来扫描和调试Windows操作系统。

如何通过命令提示符运行DISM?

你可以通过以下步骤启动DISM工具,并检查和修复Windows中的错误:

  1. 在搜索栏输入”cmd”(命令提示符的缩写)。
  2. 右键点击“命令提示符”,选择“以管理员身份运行”。 这是因为使用DISM命令行程序需要管理员权限。

下面,我们将介绍如何使用多个DISM命令来扫描和修复Windows问题。

如何使用DISM修复Windows 10?

DISM 使用三个关键参数来扫描、检查和修复损坏的Windows映像:

  • ScanHealth
  • CheckHealth
  • RestoreHealth

还有两个与上述命令结合使用的输入,用于进行更全面的检查:

  • 用于广泛检查的清理映像
  • 用于在线检查正在运行的操作系统的在线

如何使用DISM CheckHealth命令?

CheckHealth参数用于启动组件存储的初步损坏检查。 它运行速度很快,只搜索那些已被记录在日志文件中的错误。 此命令会扫描组件存储的一部分。

组件存储跟踪并维护构成Windows操作系统的每一个组件。 要在线运行CheckHealth,请在命令提示符中输入以下内容并按回车键:

Dism /Online /Cleanup-Image /CheckHealth

扫描完成后,将出现类似如下的窗口:

如何使用DISM ScanHealth命令?

ScanHealth比CheckHealth花费更长的时间,因为它会更彻底地扫描组件存储,以查找损坏的情况。 完成检查所需的时间取决于你Windows 10操作系统的运行状况。

从命令提示符运行以下命令来开始扫描:

Dism /Online /Cleanup-Image /ScanHealth

扫描完成后,将出现类似如下的窗口:

ScanHealth通过比较当前文件的哈希值与存储的哈希值来检查组件存储中的组件是否损坏,这也就是它通常比CheckHealth耗时更长的原因。

此外,还会生成一个日志文件,可用于故障分析。 如果发生丢失,首先检查DISM.log文件,然后是Sessions.xml日志文件,最后是CBS.log文件。

如何使用DISM RestoreHealth命令?

RestoreHealth是继CheckHealth和ScanHealth之后的第三个重要的DISM参数。

它与DISM结合使用,通过不同的源文件在线或离线修复Windows映像。

以下Restorehealth命令用于修复在线操作系统:

DISM.exe /Online /Cleanup-image /Restorehealth

当执行此命令时,DISM使用Windows更新来获取必要的文件以修复损坏。 根据损坏的程度,扫描和恢复组件存储可能需要一段时间。 DISM将自动从Windows更新服务器下载并替换损坏或丢失的组件文件。

命令完成后,会出现以下屏幕:

Windows映像的离线修复

上述DISM命令都是在线操作,适用于当前正在运行的Windows操作系统。

通过DISM还可以离线处理更新、驱动程序、语言包和其他配置任务的添加和删除。

接下来我们将了解如何使用DISM修复离线Windows文件。

要执行脱机操作,可以使用可引导的安装光盘、Windows 10 ISO文件或本地存储的源文件(如来自另一台设备的“install.wim”或“install.esd”文件),并将它们作为驱动器进行加载。

在继续操作之前,请确保文件与要修复的Windows 10版本的版本、版本和语言相匹配。

现在让我们来看一个使用DISM命令提示符修复脱机映像的示例:

要修复脱机映像,请从命令提示符运行以下DISM命令:

Dism /Image:C:offline /Cleanup-Image /RestoreHealth /Source:c:testmountwindowsLimitAccess

请务必根据脱机映像修改源位置,它通常是WIM、VHD或VHDX文件。

LimitAccess告诉DISM不要从Windows更新或Windows服务器更新服务中检查源文件。

如何通过PowerShell运行DISM?

在前面的部分中,我们讨论了使用Windows命令行工具来扫描、识别和解决操作系统问题。 不过,可以使用Windows PowerShell Cmdlet来完成相同的操作。

在搜索框中输入PowerShell命令,并使用管理员权限运行它,如下图所示,即可访问PowerShell Cmdlet。

powershell

DISM PowerShell的cmdlet通常直接对应于Dism.exe中的参数。 你可以从微软网站获取所有DISM命令及其PowerShell cmdlet等效项的完整列表。

要查看相关的语法、开关和参数,请使用PowerShell帮助命令“get-help – examples”。

PowerShell中使用的一些命令是:

  • CheckHealth:修复-WindowsImage -CheckHealth
  • ScanHealth:修复-WindowsImage -ScanHealth
  • RestoreHealth:Repair-WindowsImage -RestoreHealth

如何使用PowerShell执行DISM命令的示例

输入以下内容以启动CheckHealth Powershell cmdlet:

Repair-WindowsImage -online –CheckHealth

命令完成后,会出现如下画面:

你可以使用ScanHealth PowerShell cmdlet执行彻底的检查和修复,如下所示:

Repair-WindowsImage -online –ScanHealth

成功运行命令后,会出现以下屏幕:

请注意,你必须拥有管理权限才能执行这些命令,否则你将收到错误消息“请求的操作需要提升”,并且DISM命令将不会生效。

你可以在微软官方页面找到关于PowerShell的cmdlet模块的所有信息。

DISM错误故障排除

DISM旨在自动扫描和修复操作系统。 但有时,它可能会失败。

本节将重点介绍你在运行DISM实用程序时可能遇到的一些常见错误。

错误:0x800f0954 – DISM失败。没有进行任何操作。

这个错误是DISM命令失败时出现的常见问题。

当第三方防病毒程序在命令执行期间干扰DISM时,会发生此错误。 活动代理、Windows更新服务、只读访问install.wim等也可能导致此错误。

让我们看看如何克服这些挑战,让DISM成功运行。

防病毒程序的干扰

解决方法:如果停止杀毒软件后仍然出现错误,你可以在DISM功能完成后卸载并重新安装。 对于Windows 10,Microsoft Defender已经是一款强大的防病毒软件,无需第三方程序。

损坏的Windows更新组件和注册表

当后台智能传输服务(BITS)、加密服务(CryptSvc)和Windows更新服务配置错误时,DISM也会失败。

解决方案:这些服务必须设置为自动启动类型和已启动状态,才能成功进行自动Windows更新。 有时,重新启动这些服务也可以解决问题:

禁用代理

你可能正在使用代理来保护你的隐私,但这会阻止DISM运行命令。

解决方法:关闭代理,然后运行DISM工具。

对Install.wim的只读访问权限

大多数情况下,当用户从Windows 10安装ISO直接复制install.wim文件以启动DISM脱机扫描时,会遇到此问题。由于install.wim文件具有只读权限,DISM将会失败。

解决方案:通过右键单击install.wim文件,并从上下文菜单中选择“属性”,然后取消勾选“只读”复选框来删除只读权限。

如何修复DISM错误 50?

DISM错误50是另一种常见的错误类型。当用户尝试运行以下命令之一时会发生:

  • Dism /在线 /Cleanup-Image /CheckHealth
  • Dism /在线 /Cleanup-Image /ScanHealth
  • Dism /在线 /Cleanup-Image /RestoreHealth

此错误的主要原因是注册表项的位置不正确。

因此,要修复此问题,你必须按如下方式删除此键:

  1. 使用命令提示符运行regedit以访问注册表。
  2. 导航到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl。
  3. 找到MiniNT文件夹,并将其删除,如下图所示。

验证修改后,重新启动Windows 10计算机。

结论

DISM工具是一款功能强大且高级的工具,适合具有技术背景的专业人士使用。 它是系统管理员的理想选择。 这种复杂的工具可以解决SFC和CHKDSK无法修复的操作系统组件存储损坏问题。

你还可以探索其他优秀的修复工具,来自动解决Windows 10中的各种问题。