启动与系统组件

0x80070003错误,Windows 升级在迁移操作的驱动程序过程中失败 - Windows Server

· 52CE 我爱测

本文介绍如何解决在 Windows 或 Windows Server 就地升级的“进程驱动程序迁移”作期间出现“0x80070003”错误的问题。 症状 尝试将基于 Windows Server 的计算机或基于 Windows 客户端的计算机升级到较新版本的作系统( 就地升级),升级过程将失败。 发生此错误时,升级过程将生成“0x80070003”错误。 原因 WinSxS 系统文件夹中服务堆栈文件夹的内容丢失或损坏。 如果没有此文件夹中的信息,DISM

本文介绍如何解决在 Windows 或 Windows Server 就地升级的“进程驱动程序迁移”作期间出现“0x80070003”错误的问题。

症状

尝试将基于 Windows Server 的计算机或基于 Windows 客户端的计算机升级到较新版本的作系统( 就地升级),升级过程将失败。 发生此错误时,升级过程将生成“0x80070003”错误。

原因

WinSxS 系统文件夹中服务堆栈文件夹的内容丢失或损坏。 如果没有此文件夹中的信息,DISM 和升级引擎将无法迁移驱动程序。 升级失败并生成“0x80070003”错误。

决议

重要

在执行任何升级作之前,请备份系统。

步骤 1:验证问题

若要收集有关此问题的其他信息,请检查相关日志。 可以使用文本编辑器(如记事本)查看日志文件。 使用 Find 命令(Ctrl+F)搜索特定字符串,如前所述。 下表列出了最有用的日志文件。 它们还会列出每个文件中可能提供有关错误的详细信息的字符串。

日志文件 位置 Description
SetupAct.log C:$WINDOWS.~BT\Sources\Panther 此日志记录升级过程的早期阶段的设置活动。
升级引擎 (MOUPG) 日志例如以下文件:
- setuperr.log
- setupdiagresults.xml
- 文件名以“MOSetup”或“MOU”开头的其他日志。
C:$WINDOWS.~BT\Sources\Panther 这些日志显示高级升级决策和阶段转换。
DISM.log C:\Windows\Logs\DISM 此日志提供 DISM(部署映像服务和管理)命令失败时的详细信息。
CBS.log(基于组件的服务日志) C:\Windows\Logs\CBS Windows 使用CBS日志来跟踪维护操作,例如更新和升级。注意: 如果此文件很大,则使用备用文本编辑器(如记事本 ++)可能更易于管理。
日志文件 要搜索的字符串
SetupAct.log “0x80070003”或类似于以下字符串的文本:
- “无法打开新会话:(DISM_{GUID})”
- 操作失败:迁移的驱动程序进程。 错误:0x80070003”
MOUPG 日志 类似于以下字符串的文本:
- MoSetupPlatform: 使用操作错误代码:[0x80070003]
- “CDlpActionDriverMigrate::ExecuteRoutine: Result = 0x80070003”
- “设置阶段更改:[SetupPhaseInstall] -> [SetupPhaseError]”
DISM.log “0x80070003”或类似于“无法绑定联机服务堆栈 - CDISMOSServiceManager: get_ServicingStackDirectory(hr:0x80070003)”的文本
CBS.log 无法创建工作器会话或重复提及服务故障的字符串

此外,还可以手动检查损坏的服务堆栈文件夹。 在 C:\Windows\WinSxS 文件夹中,查找至少一个包含“serviceingstack”字符串的名称的文件夹。 例如,你可能会找到名称类似于以下字符串的文件夹:

  • amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.26100.5074_none_a5532eb7772ad4c4
  • amd64_microsoft-windows-servicingstack-inetsrv_31bf3856ad364e35_10.0.26100.5074_none_d120fd2616d820ec
  • amd64_microsoft-windows-servicingstack-onecore_31bf3856ad364e35_10.0.26100.5074_none_da44c3c8cf2df25a
  • x86_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.26100.5074_none_49349333becd638e
  • x86_microsoft-windows-servicingstack-inetsrv_31bf3856ad364e35_10.0.26100.5074_none_750261a25e7aafb6
  • x86_microsoft-windows-servicingstack-onecore_31bf3856ad364e35_10.0.26100.5074_none_7e26284516d08124

此类文件夹不应为空。

步骤 2:从最新的 SSU 下载和提取文件

  1. 在受影响的计算机上,打开管理命令提示符窗口,然后运行以下命令:

    reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Version"
    

    命令输出确认计算机上的服务堆栈的当前版本。

  2. 在受影响的计算机上,创建一个临时文件夹(例如 C:\TemporaryFolder)。

  3. 从服务堆栈更新(SSU):常见问题解答下载适合您的 Windows 版本的最新服务堆栈更新(SSU)。

  4. 将 .msu 包中的更新文件提取到临时文件夹。 例如,在命令提示符处运行以下命令:

    expand -F:* C:\<Path>\update.msu C:\TemporaryFolder
    

    注释

    在此命令中, <Path> 表示 .msu 包的路径。

步骤 3:替换损坏的文件

注意

  • 不要获取 WinSxS 文件夹或其子文件夹的所有权,也不会更改文件夹权限。
  • 此过程使用 robocopy /B 命令将 WinSxS 文件夹中的服务堆栈文件夹替换为下载的 SSU 中的服务堆栈文件夹。 Robocopy /B 保留文件和文件夹权限。
  1. 打开管理 PowerShell 窗口。 若要为 robocopy 操作定义一组变量,请按顺序运行以下命令:

    $src = "C:\TemporaryFolder"
    $dst = "C:\Windows\WinSxS"
    $log = "C:\Repair\WinSxS_Repair.log"
    
    New-Item -ItemType Directory -Force -Path (Split-Path $log) | Out-Null
    

    注释

    这些命令继续使用上一节中引入的 C:\TemporaryFolder 文件夹。 他们还引入了用于存储日志文件的 C:\Repair 文件夹。

  2. 若要查看项列表而不实际复制它们,请运行以下命令:

    Get-ChildItem -Path $src -Directory -Force | ForEach-Object {
      & robocopy $_.FullName $dst /E /COPYALL /B /R:0 /W:0 /L /NFL /NDL /NP /NJH /NJS
    }
    

    注释

    • 该 Get-ChildItem -Directory cmdlet 仅选择子文件夹。 因此,robocopy 操作会跳过根级文件,例如 mum 和 manifest 文件。
    • 有关Get-ChildItem cmdlet及其选项的详细信息,请参阅Get-ChildItem。
    • 有关 robocopy 命令及其开关的详细信息,请参阅 robocopy。
  3. 若要复制子文件夹并记录作,请运行以下命令:

    Get-ChildItem -Path $src -Directory -Force | ForEach-Object {
      & robocopy $_.FullName $dst /E /COPYALL /B /R:0 /W:0 /LOG+:$log
    }
    

    作为上述步骤的替代方法,可以在管理命令提示符处运行以下命令:

    for /d %i in (C:\TemporaryFolder\*) do robocopy "%i" "C:\Windows\WinSxS" /E /COPYALL /B /R:0 /W:0
    
  4. 复制完 SSU 文件后,请重试升级 Windows。

第三方信息免责声明

本文讨论的第三方产品由独立于微软的公司制造。 Microsoft对这些产品的性能或可靠性不作任何明示或暗示的保证。

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
按正文的 Windows / Windows Server 适用版本;保留原文兼容性要求
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。