在 Citrix 環境中對 Slack 進行疑難排解

如果你同時使用 Slack 和 Citrix,並且在啟動桌面應用程式時遇到問題,請深入瞭解此問題及修正方法。 

 

啟動 Slack 的相關問題

問題發生原因

XenApp 和 XenDesktop 等 Citrix 環境使用動態連結程式庫 (DLL) 重新導向到執行額外任務的路由 API 呼叫,然後再呼叫 Windows 作業系統 API。 

由於 Slack 桌面應用程式與 Citrix 的第三方 DLL 不相容,因此 Slack 可能無法在 Citrix 環境中載入。 

 

啟動 Slack 時會看到什麼

你嘗試啟動 Slack 應用程式後,Slack 看似沒有啟動,但你開啟工作管理員會看到 slack.exe 處理程序正在執行。Slack 可能也會顯示在工作列中,但你將無法與應用程式互動。 

通常應用程式會在約 15 分鐘後完成啟動並正常執行,但你會看到這段期間 slack.exe 處理程序當機的多份報告。 

 

從 DLL 連結豁免 slack.exe

若要解決啟動 Slack 應用程式時遇到的問題,可以從 Citrix 環境的 DLL 連結機制中豁免特定處理程序。你可以手動新增登錄值,也可以執行 PowerShell 指令碼來自動建立登錄值。 

手動新增 slack.exe 登錄值

  1. 從電腦按下 WinR 按鍵,然後輸入 regedit.exe。 
  2. 檢查以下機碼並新增你沒看到的任何機碼:
    HKEY_LOCAL_MACHINE/SOFTWARE/Citrix/CtxHook
    HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Citrix/CtxHook
    HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Citrix/CtxHook64
  3. 如果沒有登錄值,請務必為上方所列的每組機碼新增登錄值:

    名稱:ExcludedImageNames
    類型:REG_SZ
    值:slack.exe

  4. 如果 ExcludedImageNames 已存在,請確保已在可執行檔的名稱中加上 slack.exe 並以逗號分隔,如下所示:
    App1.exe,App2.exe,slack.exe
  5. 檢查是否有以下機碼,如果沒有,請予以新增:
    HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/CtxUvi
  6. 如果已在第 5 步中新增機碼,請確認是否也新增了以下登錄值:

    名稱:UviProcessExcludes
    類型:REG_SZ
    值:slack.exe

  7. 如果 UviProcessExcludes 已存在,請確保已在可執行檔的名稱中加上 slack.exe 並以分號分隔,如下所示:
    App1.exe;App2.exe;slack.exe
如需更多資訊,請查看 Citrix 官方文件

 

執行 PowerShell 指令碼來建立登錄值 

  1. 下載此 PowerShell 指令碼
  2. 下載完成後,在指令碼檔案上按一下滑鼠右鍵,選取「用 PowerShell 執行」。 
  3. 重新開機,然後重新啟動 Slack 桌面應用程式。 

提示:如果因為違反執行原則而無法執行 PowerShell 指令碼,請依照 Microsoft 的說明文件來更新電腦的原則。