您必须在希望 Horizon 运行启动会话脚本的每个 Horizon 桌面虚拟机上添加 Windows 注册表项。

前提条件

  • 确认您配置启动会话脚本的路径仅可供系统帐户和本地管理员访问。有关更多信息,请参阅使启动会话脚本可供访问
  • 确保您的启动会话脚本可快速运行。如果您在 Windows 注册表中设置了 WaitScriptsOnStartSession 值,则必须先完成启动会话脚本运行,然后 Horizon Agent 才能对 Horizon Connection Server发出的 StartSession 消息做出响应。有关更多信息,请参阅管理启动会话超时

过程

  1. 登录到 Horizon 桌面虚拟机。
  2. 在命令提示符中,键入 regedit 以启动 Windows 注册表编辑器。
  3. 在注册表中,导航到 HKLM\SOFTWARE\VMware, Inc.\VMware VDM\ScriptEvents
  4. 将启动会话脚本的路径添加到注册表中。
    1. 在导航区域中,右键单击 ScriptEvents,选择 新建 > ,然后创建一个名为 StartSession 的项。
    2. 在导航区域中,右键单击 StartSession,选择新建 > 字符串值,然后创建一个字符串值以标识要运行的启动会话脚本,例如,SampleScript
      要运行多个启动会话脚本,请在 StartSession 项下为每个脚本创建一个字符串值条目。您无法指定这些脚本的运行顺序。如果脚本必须按特定顺序运行,请从单个控制脚本调用它们。
    3. 在主题区域中,右键单击新字符串值条目,然后选择修改
    4. 数值数据文本框中,键入用于调用启动会话脚本的命令行,然后单击确定
      键入启动会话脚本及其所需的任何文件的完整路径。
  5. 在注册表中添加并启用启动会话值。
    1. 导航到 HKLM\SOFTWARE\VMware, Inc.\VMware VDM\Agent\Configuration
    2. (可选) 如果 Configuration 项不存在,请右键单击 Agent,选择新建 > ,然后创建该项。
    3. 在导航区域中,右键单击 Configuration,选择新建 > DWORD (32 位) 值,然后键入 RunScriptsOnStartSession
    4. 在主题区域中,右键单击新 DWORD 值条目,然后选择修改
    5. 数值数据文本框中,键入 1 以启用启动会话脚本,然后单击确定
      键入 0 可禁用此功能。默认值为 0。
    6. (可选) 要使 Horizon Agent 延迟发送 StartSession 响应,请向 Configuration 项再添加一个名为 WaitScriptsOnStartSession 的 DWORD 值。
      如果 WaitScriptsOnStartSession 数据值为 1,则会使 Horizon Agent 延迟发送 StartSession 响应,并在脚本未完成时失败。值为 0 表示 Horizon Agent 不等待脚本完成或检查脚本退出代码就发送 StartSession 响应。默认值为 0。
  6. 设置一个注册表值以指定可防止脚本超时的超时值(以秒为单位,而不是分钟)。
    通过设置此以秒为单位的超时值,可以用秒作为单位来配置 VMware View 脚本主机服务超时值。例如,如果将 VMware View 脚本主机服务的超时值设置为 30 秒,可以确保在连接服务器发生超时之前,启动会话脚本或者完成运行,或者超时。
    1. 导航到 HKLM\SOFTWARE\VMware, Inc.\VMware VDM\ScriptEvents
    2. 添加名为 TimeoutsInMinutes 的 DWORD 值。
    3. 将数据值设置为 0。
  7. (可选) 要启用 VMware View 脚本主机服务以使启动会话脚本超时,请设置超时值。
    1. 导航到 HKLM\SOFTWARE\VMware, Inc.\VMware VDM\ScriptEvents\StartSession
    2. 在主题区域中,右键单击 Default (@) 项,然后选择修改
    3. 数值数据文本框中,键入超时值,然后单击确定
      值为 0 表示未设置超时。
  8. 退出注册表编辑器,并重新启动系统。