Windows Server 2008上的sysprep失败

在部署Azure虚拟机angular色之前,我们需要执行

%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每周运行几乎两次。

那么,如果这个错误是由于太多的syspreps造成的,那么就有一个解决方法,只要原始图像不是由OEM创build的。 尝试下面的内容:

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

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

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

  4. 运行slmgr.vbs –rearm

  5. 更改以下registry项以匹配下面的值使用regedit更改以下registry项以匹配

    HKEY_LOCAL_MACHINE \ SYSTEM \ SETUP \状态\ SysprepStatus \ GeneralizationState \

    CleanupState:2

    HKEY_LOCAL_MACHINE \ SYSTEM \ SETUP \状态\ SysprepStatus \ GeneralizationState \

    GeneralizationState:7

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

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

  8. 重启

  9. 再次运行sysprep

而且请注意,你可以做的重量有一个限制。 MS说,3,虽然我从来没有打过,但你可能想要调整你的过程来适应。 在不使用sysprep的情况下获取“黄金”图像,然后将所有累积更改烧成一个进程,以避免对已经被多次sysprepped的映像进行系统准备。 很不理想,但那是Windows的雅。