在部署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的。 尝试下面的内容:
运行slmgr.vbs / dlv并检查底部的重新装备计数器
如果它不是零,那么你应该能够通过运行slmgr.vbs –rearm来解决这个问题(跳过步骤3)
如果为零,则需要使用unattend.xml文件。 请参阅此处的示例 ,在标题下方“以下文本是Windows 7的XML答案文件的示例:”(将其添加到您的unattend.xml文件 – 我无法在此处发布)。
运行slmgr.vbs –rearm
更改以下registry项以匹配下面的值使用regedit更改以下registry项以匹配
HKEY_LOCAL_MACHINE \ SYSTEM \ SETUP \状态\ SysprepStatus \ GeneralizationState \
CleanupState:2
HKEY_LOCAL_MACHINE \ SYSTEM \ SETUP \状态\ SysprepStatus \ GeneralizationState \
GeneralizationState:7
开始 – >运行:msdtc -uninstall
开始 – >运行:msdtc -install(等待几秒钟)
重启
再次运行sysprep
而且请注意,你可以做的重量有一个限制。 MS说,3,虽然我从来没有打过,但你可能想要调整你的过程来适应。 在不使用sysprep的情况下获取“黄金”图像,然后将所有累积更改烧成一个进程,以避免对已经被多次sysprepped的映像进行系统准备。 很不理想,但那是Windows的雅。