您必須在要讓 Horizon 執行啟動工作階段指令碼的每個 Horizon 桌面平台虛擬機器上新增 Windows 登錄項目。

必要條件

  • 確認您所設定啟動工作階段指令碼的路徑僅可供 SYSTEM 帳戶和本機管理員存取。如需詳細資訊,請參閱使用啟動工作階段指令碼的最佳做法
  • 確定您的啟動工作階段指令碼可快速執行。如果您在 Windows 登錄中設定了 WaitScriptsOnStartSession 值,則啟動工作階段指令碼必須在 Horizon Agent 可回應連線代理傳送的 StartSession 訊息之前完成執行。如需詳細資訊,請參閱使用啟動工作階段指令碼的最佳做法

程序

  1. 登入 Horizon 8 桌面平台虛擬機器。
  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 回應,請將稱為 WaitScriptsOnStartSession 的第二個 DWORD 值新增至 Configuration 機碼。
      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. 結束登錄編輯程式,並重新啟動系統。