我的主 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: 驱动器上的权限问题有关,可以通过以下步骤解决:
- 以“管理员”身份登录服务器
- 更改权限以便为用户“网络服务”提供对 C 盘的完全访问权限
- 从服务器注销
- 重新以“管理员”身份登录
- 重新运行更新
这应该会安装所有待处理的更新。
来源
修复 Windows 更新错误
安装失败/CBS 存储损坏:不常见问题及故障排除
Windows Server 2008 标准版更新错误,代码为 8000FFFF
CBS 称错误 0x800f0900,(谷歌搜索)
答案3
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
请发布结果。