トラブルシューティング
公開アプリケーションでのセッションサインアウトの問題のトラブルシューティング
アプリケーションを公開する場合、公開アプリケーションのメイン実行可能ファイルのみが指定されます。しかし、一部のアプリケーションは、メインの公開アプリケーションが閉じられたときに、対応するメイン実行可能ファイルによって閉じられない追加の(子)プロセスをバックグラウンドで生成する場合があります。追加のプロセスは、実行されるスクリプトや、
Run や RunOnceKey のような特定のレジストリキーから作成されることもあります。これらのアプリケーションは、正常なサインアウトを妨げ、セッションが残存したりハングしたりする原因となり、セッションが閉じられず、ユーザーがサインアウトされない可能性があります。
この場合、Citrix Director を使用してこれらのセッションをリセットまたは終了する必要があります。
セッションが適切にサインアウトされない問題を特定し、トラブルシューティングするために、Citrix は3つのレジストリエントリを提供しています。これらの問題によりセッションが適切にログオフされない場合の特定とトラブルシューティングは、次の3つのステップからなるプロセスです。
-
どのセッションの公開アプリケーションが正常なサインアウトを妨げているかを特定する
-
それらの公開アプリケーションが追加の(子)プロセスを生成するかどうかを特定する(#step-2-identifying-for-those-published-applications-if-they-produce-any-additional-child-processes)
-
これらのプロセスを指定されたレジストリエントリに追加して、サインアウトを妨げないようにする(#step-3-add-these-processes-to-a-specified-registry-entry-to-prevent-them-from-holding-up-sign-out)
ステップ2:公開アプリケーションが追加の(子)プロセスを生成するかどうかを特定する
公開アプリケーションが正常なサインアウトを妨げていると特定されたら、次のステップは、このアプリケーションが実行時に追加のプロセスを生成するかどうかを判断することです。
HKCU\Software\CitrixVolatile\Seamless\Sessions\[ID]\LogoffCheckerBlockingProcess を読んで、公開アプリケーションが閉じられたときに、どのプロセスが正常なサインアウトをブロックしているかを判断できます。
以下の例では、キー
LogoffCheckerBlockingProcess に次のエントリが含まれています。
PhoneExperienceHost.exe
SkypeApp.exe
SkypeBackgroundHost.exe
これらのプロセスが正常なサインアウトを妨げていました。
注:
ステップ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
LogoffCheckSysModules の詳細については、公開アプリケーションからの正常なログオフによりセッションがアクティブ状態になる を参照してください。
ステップバイステップのトラブルシューティングガイド
-
テスト対象のVDAでリモートレジストリサービスを開始します。
-
コントロールパネルで、管理ツール > サービス を選択します。
-
Remote Registry Service を右クリックし、プロパティ を選択します。
-
スタートアップの種類 で、ドロップダウンメニューから 自動 を選択します。

-
-
テスト対象のVDAでWindowsファイアウォールをオフにするか、ポート455を有効にする受信ファイアウォール規則を作成します:
-
コントロールパネルで、Windows Defender ファイアウォール > 詳細設定 を選択します。
-
受信の規則 を右クリックし、新しい規則 を選択します。
-
新しい受信の規則ウィザード で、ポート を選択します。
-
プロトコルおよびポート ページで、TCP および特定のローカルポート を選択します。ローカルポートとして
445を入力します。 -
操作 ページで、接続を許可する を選択します。
-
新しい受信規則を適用するファイアウォールプロファイルを選択します。
-
ファイアウォール規則に名前を付け、完了を選択して新しい受信の規則ウィザードを終了します。

-
-
同じドメイン上の別のVM(DC、DDC、または別のVDAでも可)から、
Regeditを実行し、リモートレジストリに接続します。
-
テスト対象のVDAのIPアドレスを入力し、OKをクリックします。
regeditツリーには、テスト対象のVDAのブランチが表示されている必要があります。
-
コマンドプロンプト公開アプリケーションを開きます。
Citrix Workspace に コマンドプロンプト アプリが表示されます。公開アプリのコマンドプロンプト(/en-us/citrix-virtual-apps-desktops/2511/media/published-app-cmd-prompt.png) -
クライアントで Connection Center を開きます。これは、開いているシームレスアプリを閉じた後にセッションがサインアウトされたときに監視するために使用されます。次の画像では、リモート VDI でコマンドプロンプトプロセス
c:\Windows\system32\cmd.exeがアクティブになっていることがわかります。公開アプリの接続(/en-us/citrix-virtual-apps-desktops/2511/media/published-app-citrix-workspace-connection-center.png) -
regedit が実行されている VDA から、次のリモート IP の場所に移動します。
HKEY_USERS\S-1-X-XX-XXXXXXXX-XXXXXXXXXXX-XXXXXXXXXX-XXXX\SOFTWARE\CitrixVolatile\Seamless\Sessions\X\注:新しいセッションを開くたびにこのパスは変更されます。 -
ここで読み取るべきキーが2つあります(ここでは変更しないでください)。LogoffCheckBlockingProcess と LogoffCheckerBlockingVisibleProcess です。これらのキーは、サインアウトをブロックしているプログラムを表示します。最初のキーには、まだ開いていて閉じられていないため、
C:\Windows\System32\cmd.exeが表示されているはずです。注:LogoffCheckBlockingProcess と LogoffCheckerBlockingVisibleProcess は手動で編集しないでください。これらのレジストリ値を手動で編集すると、セッションが不安定になる可能性があります。公開アプリ 2(/en-us/citrix-virtual-apps-desktops/2511/media/published-app-regedit-2.png) -
右上隅の X をクリックして Seamless CMD を終了します。
-
セッションが閉じるかどうか、接続センターを確認します。閉じるまでに最大 30 秒かかる場合があります。閉じれば、正常なサインアウトを妨げたアプリケーションやプロセスはなかったことになります。正常なサインアウト(/en-us/citrix-virtual-apps-desktops/2511/media/published-app-bwd.png)
-
セッションが閉じなかった場合は、F5 キーで regedit の出力を更新します。
-
LogoffCheckBlockingProcess と LogoffCheckerBlockingVisibleProcess の内容を再度確認します。CMDは表示されなくなっているはずですが、別のプロセスがリストされているはずです。現在セッションのサインアウトをブロックしているプロセスがここに表示されているはずです。この場合、コマンドプロンプトが閉じられる前に、公開されたコマンドプロンプトから Notepad.exe が開かれており、このリモートのメモ帳プロセスが正常なサインアウトを妨げています。

-
この実行可能ファイルのパスと、それが表示されたキーをメモし、リモートツリーの下にある次のレジストリキーに入力します。
-
LogoffCheckBlockingProcess に表示される場合:
HKLM\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWILogoffCheckSysModulesInternal -
LogoffCheckerBlockingVisibleProcess に表示される場合:
HKLM\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWILogoffCheckVisibleSysModules
注:キーにすでに1つ以上のエントリがある場合は、末尾にコンマを追加し、そのコンマの後に新しいエントリを配置します。
-
-
クライアントの接続センターからセッションをサインアウトし、リモートアプリケーションを再度開きます。
-
リモートアプリケーションを閉じてから30秒以内にセッションが自動的にサインアウトされるまで、手順9~16を繰り返します。注:トラブルシューティング後、必要に応じて、リモートレジストリアクセスを許可するために一時的なファイアウォールの変更を元に戻します。
公開アプリケーションを開くときにWindowsの免責事項メッセージを全画面表示で見るためにLogonUIを変更する方法
認証パススルーが発生しないシナリオでは、LogonUIウィンドウのスケーリングが改善されました。LogonUIウィンドウは、使用されているモニターの解像度とDPI設定に基づいてスケーリングされ、LogonUIウィンドウ全体がクリッピングなしで表示されるようにします。
ウィンドウサイズは、レジストリで手動でピクセル単位で設定することもできます。
-
ファイル名を指定して実行コマンドで
regeditを使用してレジストリエディターを開きます。 -
HKEY_LOCAL_MACHINE\Software\Citrix\CtxHook\AppInit_DLLS\Seamless Hook\にアクセスします。 -
2つの新しいDWORDキー、LogonUIWidthとLogonUIHeightを作成します。
-
LogonUIウィンドウに必要な幅と高さ(ピクセル単位)にキーの値を設定します。LogonUIウィンドウサイズを手動で設定すると、自動スケーリングは無効になります。
注:
これらのレジストリパスは2407以降変更されました。古いレジストリ値は無視され、非推奨となっています。
デフォルトでは、LogonUIウィンドウには閉じるボタン付きのタイトルバーが含まれており、これにより、必要に応じてエンドユーザーがセッションから切断できるようになっています。
タイルバーを無効にする
LogonUIウィンドウのタイルバーは、以下のレジストリキーを使用して無効にできます。
-
ファイル名を指定して実行コマンドで
regeditを使用し、レジストリエディターを開きます。 -
HKEY_LOCAL_MACHINE\Software\Citrix\CtxHook\AppInit_DLLS\Seamless Hook\にアクセスします。 -
新しいDWORDキー「LogonUICaption」を作成し、そのキーの値を
0に設定します。
公開アプリケーションが表示されない
公開アプリケーションが起動しない、または起動中に消える場合、あるいは表示されない場合のトラブルシューティングについては、サポート記事を参照してください。
インスタンスのトラブルシューティングを行うには
追加のシームレス構成設定
ほとんどの場合、デフォルトのサーバー設定はほとんどのアプリケーションで十分であり、公開アプリケーションに追加の設定は必要ありません。
場合によっては、指定されたアプリケーションウィンドウの対話と表示の制御、および公開アプリケーション環境自体の設定を含む、追加の構成が必要です。
注:
Citrix サポートから明示的に指示されない限り、Citrix はこれらの構成設定を変更することをお勧めしません。
これらの設定は、シームレス構成設定の KB 記事 に概説されています。