Windows Server 2008 上的 sysprep 失败

Windows Server 2008 上的 sysprep 失败

在部署 Azure VM 角色之前,我们需要执行

%windir%\system32\sysprep\sysprep.exe /generalize /oobe /shutdown

但在我的例子中,sysprep 失败,日志文件 %windir%\system32\sysprep\Panther\setuperr.txt 显示:

2012-07-05 08:03:57, Error      [0x0f0073] SYSPRP RunExternalDlls:Not running DLLs; either the machine is in an invalid state or we couldn't update the recorded state, dwRet = 31
2012-07-05 08:03:57, Error      [0x0f00ae] SYSPRP WinMain:Hit failure while processing sysprep cleanup external providers; hr = 0x8007001f

我并不总是想创建新图像。有什么解决方法吗?我按照 MS 支持中的说明操作这里并尝试过:

%windir%\system32\sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:.\unattend.xml

它不起作用。

在某些情况下,我需要从 Azure 中拆除 VM 映像并重新部署并进行一些更改。因此 sysprep 必须每周运行两次。

答案1

好吧,如果该错误是由于 sysprep 过多造成的,那么有一个解决方法,前提是原始映像不是由 OEM 创建的。请尝试以下操作:

  1. 运行 slmgr.vbs /dlv 并检查底部的重新装备计数器

  2. 如果不是零,那么您应该能够通过运行来解决此问题slmgr.vbs –rearm(跳过步骤 3)

  3. 如果为零,则需要使用 unattend.xml 文件。请参阅例如这里,在标题“以下文本是 Windows 7 的 XML 应答文件的示例:”下方(将其添加到您的 unattend.xml 文件中 - 我无法在此处发布它。)

  4. 跑步slmgr.vbs –rearm

  5. 更改以下注册表项以匹配以下值使用 regedit 更改以下注册表项以匹配

    HKEY_LOCAL_MACHINE\SYSTEM\设置\状态\SysprepStatus\GeneralizationState\

    清理状态:2

    HKEY_LOCAL_MACHINE\SYSTEM\设置\状态\SysprepStatus\GeneralizationState\

    概括状态:7

  6. 开始 -> 运行: msdtc -uninstall

  7. 开始 -> 运行:msdtc -install(等待几秒钟)

  8. 重启

  9. 再次运行 sysprep

请注意,您可以执行的重新装备次数是有限制的。MS 说是 3,虽然我从来没有达到过这个数字,但您可能需要调整您的流程以适应这一点。在不使用 sysprep 的情况下获取“黄金”映像,然后将所有累积更改整合到一个过程中,这样您就可以避免对已经多次 sysprepped 的映像进行 sysprepping。这几乎不是理想的,但这就是 Windows。

相关内容