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
    HKLM/SYSTEM/CurrentControlSet/services/CtxUvi
  3. 上記の各キーの値として、 slack.exe がリストアップされていることを確認します。slack.exe を他の除外プロセスを持つキーに追加する場合は、各キー間をカンマで区切ってください。

 

PowerShell スクリプトを実行してレジストリ値を作成する 

  1. こちらの PowerShell スクリプトをダウンロードします。
  2. ダウンロードが完了したら、スクリプトファイルを右クリックし、 「PowerShell で実行」を選択します。 
  3. マシンを再起動してから、Slack デスクトップアプリを再起動します。 

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