解决方案 1 更新文件损坏

解决方案 1 更新文件损坏

我的主 WIN 2012 VM 域控制器无法再更新,每次更新都会失败并出现此错误:

Windows failed to install the following update with error 0x800f0900

我尝试了很多事情:

  • 重置 SoftwareDistribution 目录
  • sfc /scannow 无错误结束
  • dism /online /cleanup-image /restorehealth 卡在 40% (我等了 18 个小时,然后我停止了它)
  • dism /online /cleanup-image /source.... /restorehealth 从 DVD 源获取,卡在 40%,像以前一样
  • 在执行上述命令之前进行干净且安全的启动

我可以尝试做什么?

**** 编辑 WindowsUpdate.log 内容:

2017-01-17  22:33:14:450     920    ff4 Handler Generating request for CBS update 641FE631-29F1-46B4-BBED-7D2B8D56741B in sandbox C:\Windows\SoftwareDistribution\Download\61d75607e4a6a41d2d6d304bed92af67
2017-01-17  22:33:14:529     920    ff4 Handler Selected payload type is ptExpress
2017-01-17  22:33:14:607     920    ff4 Handler UH: DpxRestoreJob returned 0x80070002
2017-01-17  22:33:14:607     920    ff4 Handler Detected download state is dsHavePackage
2017-01-17  22:33:30:935     920    364 Handler FATAL: CBS called Error with 0x800f0900, 
2017-01-17  22:33:30:951     920    ff4 Handler FATAL: UH: 0x800f0900: Async stage operation failed in CUHCbsHandler::StageCbsPackage
2017-01-17  22:33:31:107     920    ff4 Handler FATAL: Request generation for CBS update complete with hr=0x800f0900 and pfResetSandbox=0 
2017-01-17  22:33:31:107     920    ff4 Handler FATAL: Error source is 106.
2017-01-17  22:33:31:107     920    ff4 DnldMgr FATAL: DM:CAgentDownloadManager::GenerateAllDownloadRequests: GenerateDownloadRequest failed with 0x800f0900.
2017-01-17  22:33:32:404     920    ff4 DnldMgr WARNING: Download request generation failed with 0x800f0900.
2017-01-17  22:33:32:435     920    ff4 DnldMgr Error 0x800f0900 occurred while downloading update; notifying dependent calls.
2017-01-17  22:33:32:466     920    174 AU  >>##  RESUMED  ## AU: Download update [UpdateId = {4485F552-0451-4646-B224-BEC7507523F3}]
2017-01-17  22:33:32:466     920    174 AU    # WARNING: Download failed, error = 0x800F0900
2017-01-17  22:33:32:779     920    174 AU  #########
2017-01-17  22:33:32:779     920    174 AU  ##  END  ##  AU: Download updates
2017-01-17  22:33:32:779     920    174 AU  #############

CBS 日志:

2017-01-27 17:11:26, Info                  CBS    Exec: Package: Package_20_for_KB2934016~31bf3856ad364e35~amd64~~6.2.1.1 is already in the correct state, current: Installed, targeted: Installed
2017-01-27 17:11:26, Info                  CBS    Exec: Skipping Package: Package_20_for_KB2934016~31bf3856ad364e35~amd64~~6.2.1.1, Update: 2934016-60_neutral_LDR because it is already in the correct state.
2017-01-27 17:11:26, Info                  CBS    Exec: Skipping Package: Package_20_for_KB2934016~31bf3856ad364e35~amd64~~6.2.1.1, Update: 2934016-61_neutral_LDR because it is already in the correct state.
2017-01-27 17:11:26, Info                  CBS    Exec: Skipping Package: Package_20_for_KB2934016~31bf3856ad364e35~amd64~~6.2.1.1, Update: 2934016-62_neutral_GDR because it is already in the correct state.
2017-01-27 17:11:26, Info                  CBS    Failed to peek next token (status=0xc0000161) [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Failed to get next Token [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Wrong XML DECL [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Invalid xml format [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Manifest parsing error at line: 1, context: 
 [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Failed to parse the manifest from the buffer. [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Error                 CBS    Failed to parse package manifest: \\?\C:\Windows\Servicing\Packages\Package_357_for_KB2836988~31bf3856ad364e35~amd64~~6.2.1.0.mum [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Mark store corruption flag because of parsing failure on package: Package_357_for_KB2836988~31bf3856ad364e35~amd64~~6.2.1.0. [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Failed to initialize package: Package_357_for_KB2836988~31bf3856ad364e35~amd64~~6.2.1.0, from path: \\?\C:\Windows\Servicing\Packages\Package_357_for_KB2836988~31bf3856ad364e35~amd64~~6.2.1.0.mum, existing package: 1 [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Mark store corruption flag because of package: Package_357_for_KB2836988~31bf3856ad364e35~amd64~~6.2.1.0. [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Failed to resolve package [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Failed to get next package to re-evaluate [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Failed to process component watch list. [HRESULT = 0x800f0900 - CBS_E_XML_PARSER_FAILURE]
2017-01-27 17:11:26, Info                  CBS    Perf: InstallUninstallChain complete.
2017-01-27 17:11:26, Info                  CSI    00000b91@2017/1/27:16:11:26.555 CSI Transaction @0x6db95b2ce0 destroyed
2017-01-27 17:11:26, Info                  CBS    Exec: Store corruption found during execution, but auto repair is already attempted today, skip it.

答案1

最简单的解决方案是创建一个新的 DC,并淘汰损坏的 DC。

答案2

解决方案 1 更新文件损坏

Microsoft 提供了一个名为修复 Windows 更新错误。是的,它适用于 Windows 10(或 8.1 或 7),但我在这里找到了扩展的 DISM.exe 命令。

本指导教程有何作用?

本指南提供了安装更新时修复问题的步骤。以下是一些常见的错误代码:0x80073712、0x800705B4、0x80004005、0x8024402F、0x80070002、0x80070643、0x80070003、0x8024200B、0x80070422、0x80070020。这些步骤应该可以解决所有错误,而不仅仅是列出的错误。

它是如何工作的?

我们将引导您完成一系列故障排除步骤,以使您的 Windows 保持最新状态。请务必按顺序执行这些步骤。

单击各个步骤时,将显示执行 DISM.exe 命令的解决方案。我知道您已经尝试过此步骤,但请尝试高级选项:

重要的

运行此命令时,DISM 使用 Windows 更新来提供修复损坏所需的文件。但是如果你的 Windows 更新客户端已经损坏、使用正在运行的 Windows 安装作为修复源,或者使用网络共享中的 Windows 并排文件夹或从可移动媒体(例如 Windows DVD)作为文件源。为此,请运行以下命令:

DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:C:\RepairSource\Windows /LimitAccess

引用的源C:\RepairSource\Windows可以是临时连接到 DC 的网络共享,也可以是带有可运行的 Windows 安装副本的拇指驱动器,如 Microsoft 文章中所述。

您可以使用媒体创作工具(微软)。然后,将 install.esd 文件转换为 WIM 文件(TheITBros.com)。

附注:

如果您有一个将服务设置TRUSTEDINSTALLER为手动的策略(GPO),请禁用此策略。

解决方案 2 权限问题

一些错误与 C: 驱动器上的权限问题有关,可以通过以下步骤解决:

  1. 以“管理员”身份登录服务器
  2. 更改权限以便为用户“网络服务”提供对 C 盘的完全访问权限
  3. 从服务器注销
  4. 重新以“管理员”身份登录
  5. 重新运行更新

这应该会安装所有待处理的更新。

来源

修复 Windows 更新错误
安装失败/CBS 存储损坏:不常见问题及故障排除
Windows Server 2008 标准版更新错误,代码为 8000FFFF
CBS 称错误 0x800f0900,(谷歌搜索)

答案3

看起来Bitlocker 和 UEFI 相关问题

Alternatively, if you do not want to install the Bitlocker feature,
simply disable Secure Boot on the HyperV guest as shown below, 
then re-enable Secure Boot after the update is applied.

这是来自微软的文档。

  • 尝试安装此安全更新时收到 0x800f0922 错误

症状

考虑以下两种配置:

场景一

  • 您有一个基于 Windows Server 2012 的服务器,该服务器使用 UEFI 固件并启用了安全启动选项。

场景二

  • 您有一个基于 Windows Server 2012 R2 的 Hyper-V 主机正在运行,并且您正在运行使用 UEFI 固件支持并启用了安全启动选项的第 2 代虚拟机客户机。客户虚拟机正在运行 Windows 8 或 Windows Server 2012。

在这些配置中,安全更新 2871690 可能无法安装,并且您会收到 0x800f0922 错误消息。

原因

出现此错误的原因是,安全更新 2871690 的安装程序错误地期望安装 BitLocker。

解决方法

要解决此问题,请根据您的情况使用下列方法之一:

方案 1 的解决方法

在使用 UEFI 且启用了安全启动选项的服务器上安装 BitLocker 可选组件。

方案 2 的解决方法

在 Hyper-V 配置中的客户虚拟机上安装 BitLocker 可选组件。注意您不必在任何驱动器上配置 BitLocker。只有在安装安全更新 2871690 时,Windows Server 2012 上才需要存在 BitLocker 组件。

Microsoft lists some package to download, but all 3 links are dead.

答案4

选项1:

检查您的 windowsupdate.log (C:\Windows) 是否有错误。

停止 Windows 更新和 BITS 服务

删除 C:\Windows\Software Distribution 文件夹

重置您的 WMI 存储库 --> 打开 CMD 并输入 winmgmt /resetrepository

启动 BITS 和 Windows 更新服务

再试一次。

选项 2:检查服务损坏: https://technet.microsoft.com/en-us/library/ee619779%28WS.10%29.aspx

请发布结果。

相关内容