Citrix 環境での Slack のトラブルシューティング

Citrix で Slack を使用中にデスクトップアプリの起動に問題が生じた場合の、問題の詳細と解決方法について説明します。 

 

Slack の起動に関する問題

この問題の原因

Citrix 環境では、XenApp や XenDesktop 同様、DLL(Dynamic-Link Library)リダイレクトを使用して、API コールをルーティングします。このコールは Windows オペレーティングシステムの API を呼び出す前に追加タスクを実行します。 

Slack デスクトップアプリと Citrix のサードパーティ DLL との互換性の関係で、Citrix 環境で Slack を読み込めない場合があります。 

 

Slack 起動時の画面表示

Slack アプリの起動を試みてもアプリが開始しないように見えますが、タスクマネージャーを開くと、slack.exe プロセスが実行中と表示されます。Slack がタスクバーにも表示される場合がありますが、アプリを操作することはできません。 

通常、アプリは約 15 分後に起動を終了し、正常動作を開始します。ただし、その間、slack.exe プロセスがクラッシュしているというレポートが複数表示されます。 

 

slack.exe を DLL フックから除外する

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 デスクトップアプリを再起動します。 

Tip : 実行ポリシー違反が原因で PowerShell スクリプトを実行できない場合は、Microsoft のドキュメントに従って、お使いのコンピューターのポリシーを更新してください。