Citrix Virtual Apps and Desktops

トラブルシューティング

公開アプリケーションにおけるセッションサインアウトの問題のトラブルシューティング

アプリケーションを公開する場合、公開アプリケーションのメイン実行可能ファイルのみが指定されます。しかし、一部のアプリケーションは、バックグラウンドで実行され、メインの公開アプリケーションが閉じられたときに、対応するメイン実行可能ファイルによって閉じられない追加の (子) プロセスを生成する場合があります。追加のプロセスは、実行されるスクリプトや、Run および RunOnceKey のような特定のレジストリキーから作成されることもあります。これらのアプリケーションは、正常なサインアウトを妨げ、セッションが残留またはハングする原因となり、セッションが閉じられず、ユーザーがサインアウトされない可能性があります。

この場合、Citrix Director を使用してこれらのセッションをリセットまたは終了する必要があります。

セッションが適切にサインアウトされない問題を特定し、トラブルシューティングするために、Citrix は3つのレジストリエントリを提供しています。これらの問題によりセッションが適切にログオフされないことの特定とトラブルシューティングは、次の3段階のプロセスです。

  1. 正常なサインアウトを妨げている公開アプリケーションを持つセッションを特定する

  2. それらの公開アプリケーションが追加の (子) プロセスを生成するかどうかを特定する

  3. これらのプロセスを指定されたレジストリエントリに追加して、サインアウトを妨げないようにする

ステップ 2: それらの公開アプリケーションが追加の (子) プロセスを生成するかどうかを特定する

公開アプリケーションが正常なサインアウトを妨げていると特定されたら、次のステップは、このアプリケーションが実行時に追加のプロセスを生成するかどうかを判断することです。

HKCU\Software\CitrixVolatile\Seamless\Sessions\[ID]\LogoffCheckerBlockingProcess を読み取ることで、公開アプリケーションが閉じられたときに、正常なサインアウトをブロックしているプロセスがあるかどうかを判断できます。

次の例では、キー LogoffCheckerBlockingProcess に次のエントリが含まれています。

PhoneExperienceHost.exe
SkypeApp.exe
SkypeBackgroundHost.exe
<!--NeedCopy-->

これらのプロセスが正常なサインアウトを妨げていました。

注:

[ID] を、確認したいセッションの正しいセッション ID に置き換えてください。

ステップ 3: これらのプロセスを指定されたレジストリエントリに追加して、サインアウトを妨げないようにする

これらのプロセスを次のレジストリキーに追加することで、今後のセッションでサインアウトを妨げないようにすることができます。

Add the process file name to the following registry key:
Caution! Refer to the Disclaimer at the end of this article before using the Registry Editor.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI
Value Name:LogoffCheckSysModules
Type:REG_SZ
String:MyAppName.exe
<!--NeedCopy-->

LogoffCheckSysModules の詳細については、「Graceful logoff from a published application renders the session in an active state」を参照してください。

ステップバイステップのトラブルシューティングガイド

  1. テスト対象の VDA でリモートレジストリサービスを開始します。

    1. コントロールパネルで、[管理ツール] > [サービス] を選択します。

    2. [Remote Registry Service] を右クリックし、[プロパティ] を選択します。

    3. [スタートアップの種類] で、ドロップダウンメニューから [自動] を選択します。

    公開アプリケーションレジストリ

  2. テスト対象の VDA で Windows ファイアウォールをオフにするか、ポート 455 を有効にする受信ファイアウォール規則を作成します。

    1. コントロールパネルで、[Windows Defender ファイアウォール] > [詳細設定] を選択します。

    2. [受信の規則] を右クリックし、[新しい規則] を選択します。

    3. [新しい受信の規則ウィザード] で、[ポート] を選択します。

    4. [プロトコルおよびポート] ページで、[TCP][特定のローカルポート] を選択します。ローカルポートとして 445 を入力します。

    5. [操作] ページで [接続を許可する] を選択します。

      1. 新しい受信の規則を適用するファイアウォールプロファイルを選択します。
    1. ファイアウォール規則に名前を付け、[完了] を選択して [新しい受信の規則ウィザード] を終了します。

      公開アプリケーションファイアウォールポート

  3. 同じドメイン上の別の VM (DC、DDC、または別の VDA のいずれか) から Regedit を実行し、リモートレジストリに接続します。

    公開アプリケーションレジストリエディター

  4. テスト対象の VDA の IP アドレスを入力し、[OK] をクリックします。regedit ツリーにテスト対象の VDA のブランチが表示されるはずです。

    公開アプリケーション Regedit

  5. [コマンドプロンプト] 公開アプリケーションを開きます。

    公開アプリケーション管理

    [コマンドプロンプト] アプリが Citrix Workspace に表示されます。

    公開アプリケーションコマンドプロンプト

  6. クライアントで [接続センター] を開きます。これは、開いているシームレスアプリを閉じた後、セッションがサインアウトされたときに監視するために使用されます。次の画像では、コマンドプロンプトプロセス c:\Windows\system32\cmd.exe がリモート VDI でアクティブであることがわかります。

    公開アプリケーション接続

  7. regeditが実行されているVDAから、以下のリモートIPロケーションに移動します。 HKEY_USERS\S-1-X-XX-XXXXXXXX-XXXXXXXXXXX-XXXXXXXXXX-XXXX\SOFTWARE\CitrixVolatile\Seamless\Sessions\X\

    注:

    このパスは、新しいセッションを開くたびに変更されます。

  8. ここには読み取るべき2つのキーがあります(ここでは変更しないでください):LogoffCheckBlockingProcessLogoffCheckerBlockingVisibleProcess。これらのキーは、サインアウトをブロックしているプログラムを表示します。最初のキーは、開かれていてまだ閉じられていないため、C:\Windows\System32\cmd.exe を表示しているはずです。

    注:

    LogoffCheckBlockingProcess および LogoffCheckerBlockingVisibleProcess は手動で編集しないでください。これらのレジストリ値を手動で編集すると、セッションが不安定になる可能性があります。

    公開アプリケーション 2

  9. 右上隅のXをクリックして、Seamless CMDを終了します。

  10. 接続センターでセッションが閉じるかどうかを確認します。閉じるまでに最大30秒かかる場合があります。セッションが閉じた場合、正常なサインアウトを妨げるアプリケーションやプロセスはなかったことになります。

    正常なサインアウト

  11. セッションが閉じなかった場合は、F5キーでregeditの出力を更新します。

  12. LogoffCheckBlockingProcessLogoffCheckerBlockingVisibleProcess の内容を再度確認します。CMDはもはや存在しないはずですが、別のプロセスがリストされているはずです。現在セッションのサインアウトをブロックしているプロセスがここに表示されている必要があります。

    このケースでは、コマンドプロンプトが閉じられる前に公開されたコマンドプロンプトからNotepad.exeが開かれており、このリモートのメモ帳プロセスが正常なサインアウトを妨げています。

    レジストリエディター

  13. この実行可能ファイルのパスと、それが表示されたキーをメモし、リモートツリーの下にある以下のレジストリキーに入力します。

    • LogoffCheckBlockingProcess に表示される場合: HKLM\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWILogoffCheckSysModulesInternal
    • LogoffCheckerBlockingVisibleProcess に表示される場合: HKLM\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWILogoffCheckVisibleSysModules

    注:

    キーにすでに1つ以上のエントリがある場合は、末尾にコンマを追加し、その後に新しいエントリを配置します。

    レジストリエディター - 最終

  14. クライアントの接続センターからセッションをサインアウトし、リモートアプリケーションを再度開きます。

  15. リモートアプリケーションを閉じてから30秒以内にセッションが自動的にサインアウトされるまで、手順9~16を繰り返します。

    注:

    トラブルシューティング後、必要に応じて、リモートレジストリアクセスを許可するための一時的なファイアウォール変更を元に戻してください。

公開アプリケーション起動時のWindows免責事項メッセージ全画面表示のためのLogonUI変更

認証パススルーが発生しないシナリオでは、LogonUIウィンドウのスケーリングが改善されました。LogonUIウィンドウは、使用されているモニターの解像度とDPI設定に基づいてスケーリングされ、LogonUIウィンドウ全体がクリッピングなしで表示されるようにします。

ウィンドウサイズは、レジストリでピクセル単位で手動設定することもできます。

  1. ファイル名を指定して実行コマンドでregeditを使用してレジストリエディターを開きます。

  2. HKEY_LOCAL_MACHINE\Software\Citrix\CtxHook\AppInit_DLLS\Seamless Hook\ に移動します。

  3. 2つの新しいDWORDキー、LogonUIWidthLogonUIHeight を作成します。

  4. キーの値を、LogonUIウィンドウに必要な幅と高さ(ピクセル単位)に設定します。

    LogonUIウィンドウのサイズを手動で設定すると、自動スケーリングは無効になります。

注:

これらのレジストリパスは、2407以降で変更されました。古いレジストリ値は無視され、非推奨です。

デフォルトでは、LogonUIウィンドウにはタイトルバーと閉じるボタンが含まれており、必要に応じてエンドユーザーがセッションから切断できるようになっています。

タイトルバーの無効化

以下のレジストリキーを使用して、LogonUIウィンドウのタイトルバーを無効にできます。

  1. ファイル名を指定して実行コマンドでregeditを使用してレジストリエディターを開きます。

  2. HKEY_LOCAL_MACHINE\Software\Citrix\CtxHook\AppInit_DLLS\Seamless Hook\ に移動します。

  3. 新しいDWORDキーLogonUICaptionを作成し、キーの値を0に設定します。

    タイトルバー付きLogonUIウィンドウ

公開アプリケーションが表示されない場合

公開アプリケーションが起動しない、または起動中に消える場合、または表示されない場合のトラブルシューティングについては、サポート記事を参照してください。

インスタンスのトラブルシューティングを行うには

その他のSeamless構成設定

ほとんどの場合、デフォルトのサーバー設定は大部分のアプリケーションで十分であり、公開アプリケーションに追加の設定は必要ありません。

特定のアプリケーションウィンドウのインタラクションと表示の制御、および公開アプリケーション環境自体の設定を含め、追加の構成が必要となる場合があります。

注:

Citrixサポートから明示的に指示されない限り、これらの構成設定を変更することはお勧めしません。

これらの設定は、Seamless構成設定KB記事に概説されています。

トラブルシューティング