本文提供了将某些计算机从 Windows 10 升级到 Windows 11 时发生的错误的解决方案。
症状
使用以下系统之一为 Windows 客户端计算机提供服务:
- System Center Configuration Manager (SCCM)
- Windows Server Update Services (WSUS)
- 适用于企业的 Windows 更新
从 Windows 10 22H2 到 Windows 11 23H2 或 24H2 的功能更新在Safe_OS阶段失败,并生成错误0x800F0818 - 0x20003。 失败后,更新会回滚。
如果运行诊断工具(如 SetupDiag),该工具将返回相同的错误代码。
C:$Windows.~BT\Sources\Rollback\setupact_rollback.log 文件中记录了一个错误条目,其中包含类似于以下摘录的文本:
YYYY-MM-DD HH:MM:SS, Info MOUPG InitializeRoutine: MOSETUP_ACTION_IMAGE_EXIT
YYYY-MM-DD HH:MM:SS, Info MOUPG ImageExit: Initializing SetupResult: [0x800f0818]
YYYY-MM-DD HH:MM:SS, Info MOUPG ImageExit: Initializing Extended: [0x20003]
YYYY-MM-DD HH:MM:SS, Info MOUPG ImageExit: Initializing Scenario: [6]
YYYY-MM-DD HH:MM:SS, Info MOUPG ImageExit: Initializing Mode: [5]
YYYY-MM-DD HH:MM:SS, Info MOUPG ImageExit: Initializing Product: [1]
YYYY-MM-DD HH:MM:SS, Info MOUPG ImageExit: Initializing Target: [C]
YYYY-MM-DD HH:MM:SS, Info MOUPG ImageExit: Initializing SQM: [FALSE]
YYYY-MM-DD HH:MM:SS, Info MOUPG ImageExit: Initializing PostReboot: [TRUE]
此外,C:$Windows.~BT\Sources\Panther\setupact.log 文件中记录了多个错误条目。 这些条目的内容类似于以下摘录:
YYYY-MM-DD HH:MM:SS, Info MOUPG SetupHost::Initialize: CmdLine = [/Product Client /PreDownload /Package /Priority Normal /Quiet /ReportId 96CEE****************3-2D4E1B1306F5.1 /FlightData "RS:24944" "/CancelId" "C-757a2**********************4256ca34" "/PauseId" "P-757a20**********************" "/CorrelationVector" "otIKT***B0mTOyAl.1.1.28.4" "/DownloadSizeInMB" "3046" /InstallLangPacks C:\ProgramData\Temp\Inplaceupgrade\W10_22H2\LP /PostOOBE C:\ProgramData\Temp\Inplaceupgrade\W10_22H2\Scripts\SetupComplete.cmd /PostRollback C:\ProgramData\Temp\Inplaceupgrade\W10_22H2\Scripts\ErrorHandler.cmd /DynamicUpdate Disable /Compat IgnoreWarning]
YYYY-MM-DD HH:MM:SS, Info MOUPG SetupManager: Copying user-provided langpack package files from [C:\ProgramData\Temp\Inplaceupgrade\W10_22H2\LP] -> [C:\$WINDOWS.~BT\LangPacks\User]...
YYYY-MM-DD HH:MM:SS, Info CBS Appl: Evaluating package applicability for package Microsoft-Windows-Xps-Xps-Viewer-Opt-Package~31bf3856ad364e35~amd64~~10.0.22621.1, applicable state: Installed
YYYY-MM-DD HH:MM:SS, Info CBS Package doesn't match FOD for the current OS, package: Microsoft-Windows-LanguageFeatures-Basic-hu-hu-Package~31bf3856ad364e35~amd64~~10.0.19041.1, expected:Microsoft-Windows-LanguageFeatures-Basic-hu-hu-Package~31bf3856ad364e35~amd64~~10.0.22621.1 [HRESULT = 0x800f0818 - CBS_E_IDENTITY_MISMATCH]
YYYY-MM-DD HH:MM:SS, Info CBS Failed to check capability logic [HRESULT = 0x800f0818 - CBS_E_IDENTITY_MISMATCH]
原因
此问题会影响具有以下历史记录之一的设备:
- 设备以前收到了使用自定义 SetupConfig.ini 文件的 Windows 10 功能更新。
- 早期更新或升级到设备使用的语言包或升级后脚本,这些脚本是手动配置或部署的。
升级失败,因为旧版 SetupConfig.ini 文件包含过时语言包和脚本的硬编码路径。 这些语言包和脚本与 Windows 11 不兼容。 旧文件的路径通常 C:\Users\Default\AppData\Local\Microsoft\Windows\WSUS\SetupConfig.ini。 文件的内容类似于以下摘录:
[SetupConfig]
InstallLangPacks=C:\ProgramData\Temp\Inplaceupgrade\W10_22H2\LP
PostOOBE=C:\ProgramData\Temp\Inplaceupgrade\W10_22H2\Scripts\SetupComplete.cmd
PostRollback=C:\ProgramData\Temp\Inplaceupgrade\W10_22H2\Scripts\ErrorHandler.cmd
DynamicUpdate=Disable
这些过时的引用会导致升级过程中标识不匹配。 因此,升级失败并回滚。
决议
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 如果您错误地修改注册表,可能会出现严重问题。 因此,请确保仔细执行这些步骤。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和恢复注册表的更多信息,请参见如何在 Windows 中备份和恢复注册表。
若要删除旧信息,请执行以下步骤:
-
在受影响的计算机上,打开文件资源管理器,然后转到 C:\Users\Default\AppData\Local\Microsoft\Windows\WSUS\。
注释
如果看不到 AppData 文件夹,请选择“ 查看>显示”,然后选择“ 隐藏项目 ”以查看隐藏的文件和文件夹。
-
删除 SetupConfig.ini 文件。
-
打开注册表编辑器,然后转到
HKEY_LOCAL_MACHINE\SYSTEM\Setup子项。 -
UnattendFile删除注册表项。