在创建过程中自定义即时克隆虚拟机有两个选项:VMware ClonePrep 或 Microsoft Sysprep。
ClonePrep 是一个 VMware 自定义进程,该进程在即时克隆部署期间运行,用于对从父映像创建的每个桌面克隆进行个性化设置。
Sysprep 是一个 Microsoft 工具,用于通过基础映像部署配置的操作系统安装。然后,可根据应答脚本自定义桌面。
有关 ClonePrep 与 Sysprep 之间差异的更多信息,请参阅选择 ClonePrep 或 Sysprep 以自定义虚拟桌面。
ClonePrep 客户机自定义
ClonePrep 可确保所有即时克隆全部加入 Active Directory 域。这些克隆具有与最佳配置映像相同的计算机安全标识符 (Security Identifier, SID)。ClonePrep 还会保留应用程序的全局唯一标识符 (Globally Unique Identifier, GUID),不过某些应用程序会在自定义期间生成新的 GUID。
添加即时克隆桌面池时,您可以指定一个在创建克隆之后立即运行的脚本,以及另外一个在克隆关闭电源之前运行的脚本。
- ClonePrep 如何运行脚本
ClonePrep 使用 Windows CreateProcess API 来运行脚本。您的脚本可以调用任何可通过 CreateProcess API 创建的进程。例如,cmd、vbscript、exe 和批处理文件进程可与此 API 配合使用。
特别是,ClonePrep 会将脚本的路径作为第二个参数传递到 CreateProcess API,并将第一个参数设置为
NULL
。例如,如果脚本路径为 c:\myscript.cmd,则对 CreateProcess 的调用为 CreateProcess(NULL,c:\myscript.cmd,...)。 - 提供 ClonePrep 脚本的路径
在创建或编辑桌面池时,您可以指定脚本。这些脚本必须位于最佳配置映像中。您不能使用指向网络共享位置的 UNC 路径。
如果您使用需要解释程序才能运行脚本的脚本语言,则脚本路径必须以解释程序的可执行文件开头。例如,必须指定 C:\windows\system32\cscript.exe c:\script\myvb.vbs,而不是指定 C:\script\myvb.vbs。
重要说明: 请将 ClonePrep 自定义脚本放置在安全的文件夹中,以防止进行未授权的访问。 - ClonePrep 脚本超时限制
默认情况下,如果脚本执行时间超过 20 秒,ClonePrep 便会终止脚本。您可以增加此超时限制。有关详细信息,请参阅延长 ClonePrep 自定义脚本的超时限制。
或者,您也可以指定一个脚本来运行其他运行时间较长的脚本或进程。
- ClonePrep 脚本帐户
ClonePrep 用来运行脚本的帐户与 VMware Horizon Instant Clone Agent 服务所使用的帐户相同。默认情况下,此帐户为 Local System。请勿更改这个登录帐户。否则,克隆可能无法启动。
- ClonePrep 进程特权
出于安全原因考虑,从运行 ClonePrep 自定义脚本的 VMware Horizon Instant Clone Agent 进程中移除了某些 Windows 操作系统特权。脚本将无法执行需要这些特权的操作。
运行 ClonePrep 脚本的进程没有以下特权:
- SeCreateTokenPrivilege
- SeTakeOwnershipPrivilege
- SeSecurityPrivilege
- SeSystemEnvironmentPrivilege
- SeLoadDriverPrivilege
- SeSystemtimePrivilege
- SeUndockPrivilege
- SeManageVolumePrivilege
- SeLockMemoryPrivilege
- SeIncreaseBasePriorityPrivilege
- SeCreatePermanentPrivilege
- SeDebugPrivilege
- SeAuditPrivilege
- ClonePrep 脚本日志
ClonePrep 会将消息写入位于 C:\ProgramData\Vmware\VDM\Logs 的日志文件。
Sysprep 客户机自定义
-
要在某些较旧版本的 Windows 10 上运行 Sysprep,必须移除为所有用户安装的 Appx 软件包。在 Windows 10 的某些较新更新中,Sysprep 会自动移除这些软件包,因此无需执行此操作。有关移除 Appx 软件包的说明,请访问 Microsoft 支持站点。
- Sysprep 可能会因为存在挂起的 Windows 更新而失败。为防止出现这种情况,请在最佳配置映像虚拟机上运行 Microsoft Windows 更新,并考虑为即时克隆禁用 Microsoft Windows 更新服务。您也可以查看 Windows 更新页面,以确认没有显示挂起的更新或错误。
- 默认情况下,Sysprep 常规会禁用内置管理员帐户。如果最佳配置映像虚拟机上没有其他用户帐户,并且克隆自定义失败,则用户将无法登录到克隆虚拟机以收集调试信息。尝试以本地管理员身份登录时,用户将在登录屏幕上看到一条消息,指示“您的帐户已禁用。请与系统管理员联系 (Your account has been disabled. Please see your system administrator)”。要解决此问题,请按照 Microsoft 支持站点上的说明在最佳配置映像虚拟机上创建新的用户帐户。
- 可以使用 ClonePrep 或 Microsoft Sysprep 客户机自定义将 vTPM 设备添加到即时克隆。如果使用的是 Sysprep 自定义,并且启用了智能置备或禁用了父虚拟机(模式 B),请确保集群中的所有主机都运行 ESXi 7.0 Update 3f 或更高版本。