![DISM 无法修复 Server 2016](https://linux22.com/image/771342/DISM%20%E6%97%A0%E6%B3%95%E4%BF%AE%E5%A4%8D%20Server%202016.png)
我已经与此斗争了几天,真的需要社区的帮助。这开始于在 Server 2016 Datacenter 上安装 Windows 更新失败,这导致迹象表明 CBS 存储损坏存在问题。SFC /ScanNow 返回干净,dism /Online /Cleanup-Image /CheckHealth 显示组件存储可修复。 检查健康
运行 dism.exe /Online /Cleanup-Image /RestoreHealth /Source:WIM:C:\temp\install.wim:1 /LimitAccess /Loglevel:4 最终失败,并出现错误:0x800f081f。 源 WIM
作为参考,从 Microsoft 门户网站确认 install.wim:1 是 Windows Server 2016 Datacenter wim。 Wim 指数验证
在未指定源的情况下尝试修复会导致几乎更不寻常的错误:14“没有足够的存储空间来完成此操作。”;操作系统驱动器有 44 GB 的可用空间。 错误 14
dism.log 似乎没有太多价值,但 CBS.log 有“无法下载更新 [HRESULT = 0x8007000e - E_OUTOFMEMORY]”,在时间线上与错误 14 相匹配。
以下引自 CBS.log:
Checking System Update Readiness.
(p) CSI Payload Corrupt amd64_microsoft-windows-msmq-powershell_31bf3856ad364e35_10.0.14393.1066_none_3ecfc4b3ae7c6dae\Microsoft.Msmq.Runtime.Interop.dll
Repair failed: Missing replacement payload.
(p) CSI Payload Corrupt amd64_microsoft-windows-msmq-powershell_31bf3856ad364e35_10.0.14393.1066_none_3ecfc4b3ae7c6dae\Microsoft.Msmq.Activex.Interop.dll
Repair failed: Missing replacement payload.
(p) CSI Payload Corrupt amd64_microsoft-windows-msmq-powershell_31bf3856ad364e35_10.0.14393.1066_none_3ecfc4b3ae7c6dae\Microsoft.Msmq.PowerShell.Commands.dll
Repair failed: Missing replacement payload.
(p) CSI Payload Corrupt x86_microsoft-windows-msmq-powershell_31bf3856ad364e35_10.0.14393.1066_none_e2b1292ff61efc78\Microsoft.Msmq.Activex.Interop.dll
Repair failed: Missing replacement payload.
(p) CSI Payload Corrupt x86_microsoft-windows-msmq-powershell_31bf3856ad364e35_10.0.14393.1066_none_e2b1292ff61efc78\Microsoft.Msmq.PowerShell.Commands.dll
Repair failed: Missing replacement payload.
(p) CSI Payload Corrupt amd64_microsoft-windows-fsrm-service_31bf3856ad364e35_10.0.14393.1378_none_167ee64821565098\srmsvc.dll
Repair failed: Missing replacement payload.
这些似乎是我的罪魁祸首,但我无法在全新的 Server 2016 上的 winsxs 目录中找到它们,我也试图将其用作修复的源。
我不知道还能尝试什么,微软对此的文档让我陷入困境,说 sfc 和 DISM 是答案。
答案1
最终,解决 dism restorehealth 故障的方法是识别与 winsxs 文件夹中丢失的文件相关的 KB。就我而言,这些丢失的文件来自 KB4015217,该版本在 Windows 更新目录中不再可用。幸运的是,我能够找到另一台在同一时间构建并收到此特定 KB 的服务器。我将“丢失”的文件从源服务器复制到受影响的系统,然后重新运行 dism 命令以恢复健康。