Citrix receiver デスクトップ 起動できません

Citrix receiver デスクトップ 起動できません
Citrix関連技術

2021.01.06 2014.04.02

何だか良く解らないタイトルですが、XenAppで公開しているアプリケーションを起動しようとするとXenAppサーバーへのログオンプロセスの途中で終了してしまう現象に見舞われました。Citrixのナレッジに回避策があったので未来の自分のために覚え書きしておきます。

事象

原因

XenAppサーバーへのログオン処理に1分以上かかると、XenAppのモジュールであるログオフチェッカーがログオフ処理を実行してしまう事が原因です。
ログオフチェッカーは公開アプリケーションが終了した後に、セカンダリプロセスが残っていた場合でもセカンダリプロセスを無視してユーザーをログオフさせるもので、無駄なセッションを残さないようにする優秀なツールなのですが、ログオン時にはこれが邪魔をしている様です。
詳細は前述のリンクに記載されていますが、簡潔に言えばログオン完了前にログオフされることが原因です。何ともアホらしい動きです。

解決方法

ログオフチェッカーの起動待ち時間をレジストリで設定して、ログオフチェッカーの起動を遅らせる事で対処します。
根本解決はログオン処理を高速化させる事だと思うのですが、移動ユーザープロファイルを利用しているとプロファイルを保存するファイルサーバーのパフォーマンスやネットワークのチューニング、さらにグループポリシー等も絡むハナシになるので、根本対策が非常に難しいと思います。そのため、ログオフチェッカーの起動を遅らせる方が、「アプリが起動しない!」という問い合わせを手っ取り早く解決する事が出来ます。

もっと根本的な解決策はログオン処理時にはログオフチェッカーを無効化する事なのですが、ログオフチェッカーが無いと、アプリケーションが終了した後にセカンダリプロセスが残ってしまい、XenAppサーバーにいつまでもユーザーのセッションが残り続ける問題が起こってしまいます。

さて、設定するレジストリは・・・

HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Citrix¥Wfshell¥TWI
値の名前:LogoffCheckerStartupDelayInSeconds
種類:REG_DWORD
値のデータ:0~600(秒)

ログオフチェッカーの起動を遅らせる時間を秒で指定します。60を設定するとログオフチェッカーの起動が1分遅れ、ログオフチェッカーが起動した後1分待機しますので、合計2分間でログオン処理が終わればOKとなります。もしこれでも事象が改善しない場合値を増やしていけば良いです。
私が管理している環境では取りあえず60秒に設定しました。ユーザープロファイルが肥大化しているユーザーは60秒では足りないかも知れませんし、環境によって最適値が変わるので調整してみましょう。

追加情報(2021/1/6)

いつの間にかアプリケーションの起動時間に関する待ち時間に関するパラメーターが追加されていました。この記事を書いたのが2014年4月2日で、以下に記載するCitrixのナレッジ公開が2014年5月1日なので、ホントにタッチの差だったようです。

アプリケーションへの接続が開始されるがタイムアウトの後消える
https://support.citrix.com/article/CTX140654

こちらは、アプリケーションの起動を監視しているパラメーターの様で、既定時間(1分)を超えるとタイムアウトしてしまい、セッションが終了してしまいます。

現象
任意のデリバリーグループからのノートパッドのようなホストされたアプリケーションに接続する場合、アプリケーションは最初に開き始めます。しかしながら、ローディングの後、ダイアログボックスは消えます。また、アプリケーションが現れません。
原因
デフォルト1分のタイムアウトを超過し、アプリケーションが開始するのにより長い時間がかかったためにセッションが自動的に終了する場合、問題が生じます。

https://support.citrix.com/article/CTX140654

ログオフチェッカーと同じくTWI配下にキーを作成しますが、こちらはミリ秒での指定なので注意が必要です。デフォルトは60秒(60000)が設定されています。また最小値は10秒(10000)のため10000以下を設定しても10000に上書きされます。環境によって変わるので最適値は分かりませんが、5分(300000)くらいに設定しておけば、取り合えず問題は回避できるのではないでしょうか。

HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Citrix¥Wfshell¥TWI
値の名前:ApplicationLaunchWaitTimeoutMS
種類:REG_DWORD
値のデータ:10000~

なんか凄いレアなドキュメント見つけました。勇気がある人は買ってみてください。

Citrix receiver デスクトップ 起動できません

Citrix receiver デスクトップ 起動できません

The Art of Service - Citrix XenApp Publishing


Citrix receiver デスクトップ 起動できません

Citrix receiver デスクトップ 起動できません

一般的な制限

  • Citrix 仮想ユーザ・スクリプトを初めて記録または再生すると,Citrix レジストリ・パッチがインストールされます。まれに,このパッチのインストールの失敗がエラー・ログに記録されることがあります。この場合,レジストリ・パッチを手動でインストールしてみてください。このパッチは,<インストール・フォルダ>\dat\Enable_Citrix_API.reg にあります。このレジストリ・パッチをインストールするには,使用するマシンで Enable_Citrix_API.reg をダブルクリックします。

    注: Citrix クライアントは 32 ビットのソフトウェアです。そのため,64 ビット OS には,このレジストリ・パッチを HKLM\SOFTWARE\ の下ではなく,HKLM\SOFTWARE\Wow6432Node\ の下にインストールします。そのためには,Enable_Citrix_API.reg を Windows エクスプローラからではなく,32 ビットのファイル・マネージャから起動または変更します。

  • 仮想マシン上で Citrix 仮想ユーザを実行すると,物理リソースの共有のためにパフォーマンスに悪影響を与える可能性があります。

  • Windows 2012 サーバでウィンドウがオーバーラップすると,テキスト認識が正しく機能しません。

  • Windows 8.1 で再生するとき,[スタート]ボタンをクリックしても[スタート]メニューが表示されないことがあります。

    回避策: スクリプトに記録された ctrx_mouse_click または ctrx_obj_mouse_click 関数の下に,別の ctrx_mouse_click 関数を追加します。

  • Citrix エージェントは,x86 オペレーティング・システム上の Java アプリケーションをサポートしていません。
  • ICA スクリプトが VuGen で成功するにもかかわらず,Load Generator では失敗する場合,Load Generator マシン上の表示を確認してください。[ICA Client File Security]という Citrix ダイアログ・ボックスが表示されている場合は,このダイアログ・ボックスの[Access]セクションで[Full Access]を選択し,[Never ask me again for any application]を選択します。[OK]をクリックして変更を適用します。

    注: これらのオプションを WebICA.ini で設定することもできます。詳細については,次を参照してください。http://support.citrix.com/article/CTX568194

  • 記録中に ICA ファイルを開くのではなくダウンロードする場合は,<LoadRunner のルート・フォルダ>\bin\runcitrixclient.exe から ICA ファイルを開いてください。
  • Mozilla Firefox ブラウザで,記録中に ICA ファイルを直接開くとエラーが表示される場合は,ファイルをダウンロードしてから開いてみてください。

  • Citrix エージェントでは,Java ベースのアプリケーションまたは Internet Explorer 9 以降からテキストをキャプチャできません。
  • Citrix エージェントでは,ドロップダウン・ボックスやコンボ・ボックスなど,テキスト・ボックスと組み合わせられた特定の Java コントロールからは,テキストをキャプチャできません。

  • 記録オプションである[ウィンドウのサイズ]は,Plugin for Hosted Applications 11 では正しく機能しません。クライアント・ウィンドウのサイズはキャプチャされますが,サーバの画面解像度はキャプチャされません。これは Citrix クライアントの制限であり,Citrix クライアントの将来のバージョンで解決される可能性があります。

    回避策: 記録する場合,ウィンドウ・サイズはローカルの画面解像度と同じに設定します。再生/負荷テストを行う場合,VuGen または Load Generator の画面解像度は,スクリプトが記録されるときに使用された解像度と同じに設定します。記録された解像度を確認するには,<スクリプト・フォルダ>\default.cfg ファイルの Window プロパティを参照します。

  • 同一のマシン上の別のユーザ・セッションで実行している Citrix コネクション・センタでは Citrix ICA の記録と再生が行われない場合があります。

    回避策: すべてのユーザについて concenter.exe プロセスのすべてのインスタンスを閉じます。Citrix コネクション・センタが自動的に起動しないようにするには, ConnectionCenter レジストリ・キーを空の値に設定します。このキーは次の場所にあります。
    32 ビット・システムの場合: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    64 ビット・システムの場合: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\Curr

    • Citrix Receiver 14.4 がインストールされているマシンでは,[記録オプション]>[Citrix]>[ログイン]で接続の詳細が手動で指定されている場合,シングル・プロトコルの Citrix スクリプトの記録/再生中に Citrix サーバに接続することはできません(Citrix Receiver のそれ以降のバージョンにも適用される場合があります)。
      ICA ファイルを使用した Citrix シングルプロトコル・スクリプト,または Citrix マルチプロトコル・スクリプトに関しては,Citrix Receiver 14.4 での問題はありません。

  • Citrix Receiver がインストールされているマシンでは,スクリプトの再生時に ctrx_mouse_move() が機能しません。

    回避策: 次のいずれかの処理を行います。

    • 別の UI フローを使用するようにスクリプトを変更します。つまり,マウス移動操作をキーボード操作などの他の操作に置き換えます。

    • Citrix Receiver クライアント(ローカルおよび Load Generator マシンの両方)を Citrix Receiver バージョン 4.9 にアップグレードします。その後,次の Windows レジストリ・キーを変更して,ソリューションを有効にします。

      OS
      Citrix receiver デスクトップ 起動できません
      レジストリ・キー
      Citrix receiver デスクトップ 起動できません
      32 ビット キーの場所: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\CCM
      64 ビット
      • キーの場所: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\CCM
      • 名前: AllowMouseEvent
      • 種類: REG_DWORD
      • 値: 1

Citrix receiver デスクトップ 起動できません
先頭に戻る

Citrix エージェントの効果とメモリ要件

エージェントがインストールされた状態で Citrix 仮想ユーザを実行すると,各仮想ユーザは ctrxagent.exe の独自の手順を実行します。その結果,サーバ・マシンで実行できる仮想ユーザの数がわずかに減少します(約 7%)。

エージェントがインストールされている場合,Citrix 仮想ユーザごとのメモリ要件は約 4.35 MB です。25 仮想ユーザを実行するには,110 MB のメモリが必要です。

Citrix receiver デスクトップ 起動できません
先頭に戻る

Citrix エージェントにアクセスする関数のランダムな失敗

Citrix サーバと Citrix クライアント側ソフトウェアとの通信は,Citrix ICA 仮想チャネル上で行われます。これはパケット・データを交換するための双方向接続です。

各仮想ユーザは,サーバ側で独自の Citrix エージェント・インスタンスを起動し,独自の仮想チャネルを作成します。Citrix 仮想チャネルは,負荷が高まると,信頼性が低くなることがあります。その結果,Citrix エージェント API(ctrx_get_text(),ctrx_sync_on_obj_info() など)に依存する関数はランダムに失敗する可能性があります。

回避策: Citrix エージェントとの通信に TCP チャネルを使用します。次のフラグを設定します。

スクリプトの default.cfg 設定ファイルの [CITIRX] セクションに TCPChannel=1 を設定

CtrxAgent.ini ファイルの [ChannelConfig] セクションに TcpChannelEnabled=1 を設定

なお,CtrxAgent.ini の MinPortValue フラグと NumPorts フラグについては,エージェントが空きポートの探索を試み,MinPortValue から始まる NumPorts 個分のポートをエミュレートします。Citrix サーバまたは Load Generator にファイアウォール・ソフトウェアがある場合,これらのポートでの接続を許可するようにそのソフトウェアを設定してください。

Citrix receiver デスクトップ 起動できません
先頭に戻る

Citrix エージェントが起動しない

Citrix エージェントが起動しない場合,対応するキーがレジストリにあることを確認します。

Citrix エージェントのインストーラは,Citrix エージェントがセッションの初期化中に起動するように,キーをレジストリに書き込みます。サーバの場合は HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon の下に,クライアント・マシンの場合は HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run の下にキーを追加します。

さらに,Citrix エージェントのインストール・フォルダ(通常は,C:\Program Files (x86)\Micro Focus\Agent for Citrix Server)に,「読み取り」だけでなく,「読み取りと実行」が設定されていることを確認します。

Citrix receiver デスクトップ 起動できません
先頭に戻る

予期しない切断

「予期しない切断」エラーが発生した場合は,次のことを試してください。

  • これがネットワークの問題であると思われる場合は,Citrix セッション信頼性機能を試すことができます(これは,サーバ側の Citrix 管理者が有効にできます)。セッションの信頼性を有効にすると,ネットワーク接続が復元されたときに,Citrix クライアントは,ユーザ再認証を必要とせずに(LoadRunner に対して透過的に),サーバに再接続します。
  • 「予期しない切断」エラーは,スクリプトとサーバのタイムアウト設定の不一致によって発生することがあります。次のシナリオを考えます: スクリプトは ctrx_sync_on_window() などの何らかの同期関数を実行します。待機時間はかなり長く,たとえば 180 秒とします。このスクリプトは,ウィンドウの表示を待機する間にマウスクリックやキー押下などの操作を実行しないので,サーバは,アイドル・セッション・タイムアウト(標準設定では 2 分)を超えたときにセッションを切断します。その結果,再生ログに「予期しない切断」メッセージが表示されます。同期ステップで「予期しない切断」が発生した場合は,スクリプトの待機時間値とサーバのセッション・タイムアウトを確認することをお勧めします。

    同期ステップでの予期しない切断の別の回避策は,ユーザ・アクティビティのシミュレーションを有効にすることです([実行環境設定]>[Citrix]>[同期]>[ユーザ アクティビティのシミュレーションを有効にする])。この機能が有効になっている場合,LoadRunner は指定された時間内に Citrix サーバ上のユーザ・アクティビティをシミュレートし,この方法で切断を防止します。

  • サーバの既存のセッションに接続しようとしている可能性があります。仮想ユーザは,既存のセッションに入ると,Citrix ICA オブジェクトから Windows イベントを受信できません。これは Citrix ソフトウェアの制限事項です。この事態を防ぐには,切断またはログオフの直後に Citrix サーバのセッションが終了するように,Citrix 管理者に設定を依頼します。VuGen スクリプト側では,スクリプトの最後(vuser_end セクション)に ctrx_logoff() 関数を追加します。

    既存のセッションに入るリスクを最小限に抑えるために,Citrix エージェントは,クライアント・マシンとの通信が失われたときに,サーバ上のセッションを閉じようとします。この機能は Citrix Agent バージョン 12.51 以降で使用でき,デフォルトで有効になっています。これを無効にするには,CtrxAgent.ini で LogoffSessionOnExit=0 を設定します。

Citrix receiver デスクトップ 起動できません
先頭に戻る

Citrix Receiver - セキュリティ警告

Citrix クライアントでは,「An online application is attempting to access files in your computer」という警告が表示される場合があります。このダイアログ・ボックスが表示されると,ユーザの介入が必要なため,再生はブロックされます。

回避策: この事態を防ぐには,http://support.citrix.com/article/CTX124921 の説明に従って,何も表示せずにローカル・ドライブにアクセスできるように,Citrix クライアント・マシンのレジストリを設定します。

Citrix receiver デスクトップ 起動できません
先頭に戻る

クライアントからのセッションの取得に失敗

このエラーは,Citrix レジストリ・パッチ(LR\dat\Enable_Citrix_API.reg)がインストールされていない場合に発生します。

回避策: Citrix ICO 機能を有効にするために,上記のレジストリに AllowSimulationAPI キーが存在し,0 に設定されていないことを確認します。Citrix クライアントは 32 ビット・アプリケーションなので,64 ビットのオペレーティング・システムの場合,これらのキーは HKLM\Software\Wow6432Node ノードの下にあります。

Citrix receiver デスクトップ 起動できません
先頭に戻る

Citrix エラー 13「Unsupported function」

Citrix エラー 13 とは,一般エラー・コード,つまり,Citrix で特定のエラー・コードが用意されていないエラーを指します。このエラーは,Citrix プロセス(wfica32.exe,wfcrun32.exe,concentr.exe,receiver.exe など)が mdrv プロセス以外のセッションで実行されている LoadRunner Enterprise 環境と BPM 環境で最もよく見られます。

回避策: タスク・マネージャまたはプロセス・エクスプローラを使用して,これらのプロセスを検索し,すべて削除します。

Citrix receiver デスクトップ 起動できません
先頭に戻る

Citrix エラー 70,クライアント・エラー 1030「Protocol driver error」

このエラーには,ネットワークの問題,プロキシ設定など,いくつかの理由があります。一般的な理由としては,セキュアな(https)Web Interface サイトで記録した Citrix と Web のマルチ・プロトコル・スクリプトを実行するとき,このサイトで必要な証明書が Load Generator マシン上に存在しない場合が挙げられます。

回避策: 問題が発生したマシンの Web Interface から発行されたアプリケーションを起動してみます。ログ・ファイル %APPDATA%\ICAClient\wfcwin32.log で「SSL Error 61」を検索します。この文字列が見つかった場合,明らかに証明書の問題です。次に例を示します。

09-18-2014 10:28:55:380 Calculator MUCFARMEXT01: SSL Error 61: You have not chosen to trust "AddTrust External CA Root", the issuer of the server's security certificate.

Load Generator マシンと VuGen マシンの証明書を比較し,足りない方をインストールします。証明書名の一致だけでなく,属性も一致することを確認してください。「Expiration date」などの他の属性も確認する必要があります。

Citrix receiver デスクトップ 起動できません
先頭に戻る

Citrix receiver デスクトップ 起動できません
関連項目:

  • VuGen の一般的なトラブルシューティングと制限事項については,「VuGen の既知の問題」を参照してください。

Citrix Receiverのタイムアウトは?

デフォルトでは、Citrix Receiver for Webサイトからそのストアへの要求は、3分でタイムアウトします。 通信の試行が1回失敗すると、ストアが使用できないと見なされます。

Citrix Receiver 何に使う?

Citrix Receiverは、各種デバイスへインストールできるクライアントソフトウェアで、XenDesktopおよびXenAppへ接続するための、リモートアクセスのツールです。