Configuration Manager OSD 任务序列失败,错误代码80070005

本文修复了在安装 Windows 和 ConfigMgr 步骤期间 OSD 任务序列失败的问题。

原始产品版本: Configuration Manager
原始 KB 数: 4509131

现象

当步骤仍在 Windows PE 中运行时,Configuration Manager OSD 任务序列在 安装 Windows 和 ConfigMgr 步骤期间失败。

文件中记录了 X:\windows\temp\smstslog\smsts.log 以下错误消息:

OSDSetupWindows 安装挂钩到“C:\WINDOWS”
扩展的 OSDSetupWindows 命令行.EXE为“%1” %*
OSDSetupWindows Set 命令行:“X:\sms\bin\x64\OSDSETUPHOOK.EXE” “/install:C:\WINDOWS” /version:10.0
OSDSetupWindows 执行命令行:“X:\sms\bin\x64\OSDSETUPHOOK.EXE” “/install:C:\WINDOWS” /version:10.0
OSDSetupHook 安装 OSD 安装挂钩
OSDSetupHook !shCmdFile.null(), HRESULT=80070005 (..\vistasetuphook.cpp,96)
OSDSetupHook 安装安装挂钩失败。 对请求的权限可能配置不正确。
拒绝访问。 (错误:80070005;来源:Windows)
OSDSetupHook pHook-install>(sWindowsDir), HRESULT=80070005 (..\osdsetuphook.cpp,385)
OSDSetupHook 安装 OSD 安装挂钩失败(0x80070005)
OSDSetupWindows 进程已完成,退出代码2147942405
OSDSetupWindows exitCode, HRESULT=80070005 (setupwindows.cpp,785)
OSDSetupWindows 安装安装挂钩失败并出现错误代码(80070005)。
OSDSetupWindows this-installSetupHook>()、 HRESULT=80070005 (setupwindows.cpp,452)
OSDSetupWindows 安装挂钩失败(80070005)
OSDSetupWindows setup.run()、 HRESULT=80070005 (setupwindows.cpp,1650)
OSDSetupWindows 退出,代码0x80070005
TSManager 进程已完成,退出代码2147942405
TSManager -----------------------------------------------------------------------!
TSManager 无法运行操作:设置 Windows 和 ConfigMgr。 对请求的权限可能配置不正确。
拒绝访问。 (错误:80070005;来源:Windows)

下面是有关错误代码的详细信息80070005(2147942405):

错误代码:0x80070005(2147942405)
错误名称:E_ACCESSDENIED
错误源:Windows
错误消息:常规访问被拒绝错误

原因

如果指定了自定义SetupComplete.cmd文件,则会出现此问题。 OSD 任务序列使用 SetupComplete.cmd 文件在 Windows 安装程序完成后继续任务序列。 如果指定了自定义SetupComplete.cmd文件,任务序列将无法安装其自己的SetupComplete.cmd文件。 并返回 Access 被拒绝 错误。 因此,Configuration Manager OSD 任务序列不允许使用自定义SetupComplete.cmd文件。

可以通过以下方法之一指定自定义SetupComplete.cmd文件:

  • 它复制到应用操作系统和安装程序 Windows 和 ConfigMgr 任务之间的任务(通常是运行命令行任务)中的相应位置。 下面是运行命令行任务中的命令行示例:

    cmd.exe /c copy SetupComplete.cmd %OSDTargetSystemDrive%\Windows\Setup\Scripts

  • 它包含在自定义 OS WIM 文件的一部分。

SetupComplete.cmd文件位于 %WINDIR%\Setup\Scripts 脱机 OS 或 OS WIM 映像的文件夹中。

有关SetupComplete.cmd文件的详细信息,请参阅 将自定义脚本添加到 Windows 安装程序

解决方法

若要解决此问题,请删除自定义SetupComplete.cmd文件。 在大多数情况下,在自定义SetupComplete.cmd文件中执行的任何操作都可以作为任务序列中的任务移动。

根据指定自定义SetupComplete.cmd文件的方式,使用以下方法之一删除该文件:

  • 如果在应用操作系统和安装程序 Windows 和 ConfigMgr 任务之间的运行命令行任务中指定,请从任务序列中删除“运行命令行”任务。

  • 如果它是自定义 OS 映像的一部分,请在应用操作系统和安装程序 Windows 和 ConfigMgr 任务之间添加运行命令行任务。 在“运行命令行”任务的命令行中,输入以下命令以删除自定义SetupComplete.cmd文件:

    cmd.exe /c del SetupComplete.cmd %OSDTargetSystemDrive%\Windows\Setup\Scripts /F /Q