在创建过程中自定义即时克隆虚拟机有两个选项: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 创建的进程。例如,cmdvbscriptexe 和批处理文件进程可与此 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 客户机自定义

请注意 Microsoft Windows 10 客户机中有关 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 设备添加到即时克隆。默认情况下,即时克隆的智能置备使用模式 B(在不使用父虚拟机的情况下创建的克隆)。但是,如果在版本低于 7.0 Update 3f 的 ESXi 主机上使用 vTPM 设备,则智能置备将选择模式 A(在使用父虚拟机的情况下创建的克隆)。有关更改置备模式的信息,请参阅 https://kb.vmware.com/s/article/81026