如果要从早期版本的 Windows(Windows 10、Windows 8.1 或 Windows 7 SP1)升级操作系统,则当您尝试运行 Sysprep 时,您应该会在 setupact.log 文件中看到错误。
错误 [0x0f0036] SYSPRP spopk.dll:: Sysprep 将无法在升级的操作系统上运行。您只能在 Windows 的自定义(全新)安装版本上运行 Sysprep。
[0x0f0082] SYSPRP ActionPlatform::LaunchModule: 从 C:WindowsSystem32spopk.dll 执行“Sysprep_Clean_Validate_Opk”时发生故障; dwRet = 0x139f
Microsoft 不建议在已从以前版本的 Windows 升级的 Windows 映像上运行 Sysprep。
Microsoft 不建议在从早期版本的 Windows 更新的 Windows 映像上运行 Sysprep。支持的方案是仅 sysprep 全新安装后获得的 Windows 映像。然而,有一种方法可以绕过这个限制:
打开注册表编辑器 (regedit.exe) 并转到以下注册表项 HKEY_LOCAL_MACHINESYSTEMSetup;
找到名为Upgrade的注册表参数并将其删除;
然后导航到 HKEY_LOCAL_MACHINESYSTEMSetupStatusSysprepStatus 项,并将 CleanupState 项的参数更改为 7。
这将导致 Sysprep 假定此 Windows 副本正在以全新安装模式安装。重新启动计算机并再次运行 Sysprep。
Sysprep 在 Windows 更新安装期间失败新的 Windows 10 版本(1909、20H2、21H1、22H1)中出现另一个 Sysprep 错误。 Sysprep 失败并在 setupact.log 中显示以下错误:
错误 SYSPRP Sysprep_Clean_Validate_Opk:如果存在活动场景,则无法打开审核模式。小时=0x800F0975
错误 SYSPRP ActionPlatform::LaunchModule:从 C:WindowsSystem32spopk.dll 执行“Sysprep_Clean_Validate_Opk”时发生故障; dwRet = 0x975
错误 SYSPRP SysprepSession::Validate:验证来自 C:WindowsSystem32SysprepActionFilesCleanup.xml 的操作时出错; dwRet = 0x975
错误 SYSPRP RunPlatformActions:验证 Sysprep 会话操作时失败;错误 [0x0f0070] SYSPRP RunDlls:运行注册表 sysprep DLL 时发生错误,停止 sysprep 执行。 dwRet = 0x975
要解决此 Sysprep 错误,您需要通过现代设置控制面板暂停 Windows 更新(设置 > 更新和安全 > Windows 更新 > 暂停更新 7 天)。
重新启动您的设备并尝试运行 Sysprep。
在某些情况下,如上所述停止 Windows 更新不会完全清除预留存储。在这种情况下,sysprep日志中会出现错误:
错误 SYSPRP Sysprep_Clean_Validate_Opk:如果正在使用保留存储,则无法打开审核模式。更新或服务操作可能正在使用保留存储。小时=0x800F0975
要解决此问题:
打开注册表编辑器(regedit.exe);
导航到注册表项 HKLMSoftwareMicrosoftWindowsCurrentVersionReserveManager;
将ShippedWithReserves参数的值从1更改为0;
然后将ActiveScenario改为0;
并使用以下命令禁用 Windows 中的预留存储:
DISM.exe /Online /Set-ReservedStorageState /State:Disabled
,