Citrix On-Line Pluginが起動しない場合のトラブルシューティングしたった

シトリックス炎の掲示板 Citrix(MetaFrame)
BBS公開アプリケーションが起動しない(エラーも出ない)

この掲示板にある症状で悩んだ

通常、WebPluginでアプリケーションをクリックすると、.ica ファイルがダウンロードされ、wfica32.exe に制御が映るのだが、エラーも出ず何も起こらないのだ。

ただし、まっさらのPCの場合、ライセンス契約の同意のダイアログだけが出る。

.ica をぶっ壊してみたりすると、エラーになるので、ちゃんと読んでるのは分かる。

Debug View などで見ると OutputDebugString の内容が見れるよって、公式サイトに書いてるけど、何も出ない。

1. ログの記録を有効にしてみる

HKEY_CURRENT_USER\Software\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\Logging
この配下にあるレジストリを有効にする

false -> true にして LogFile に REG_SZ(ASCII) で ログファイルのフルパスを指定する。

ファイルは存在しなくてもいいけど、フォルダは予め作っておかないとエラーになる。

ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised
ICA Client connection initialised

10回くらい試して、何も起動しないのでログ見たら、これだけ記録されていた ・ω・ だめじゃん…。

2. バイナリをデバッガでトレースしてみた

 L00426ABD:
          call    SUB_L0045BCF0  <- ここで、 -1 が返って来て異常終了
          mov    esi,eax
          cmp    esi,ebx
          jz     L00426AF9
          call    jmp_ctxlogging.dll!ICAClientError_getThreadErrorMessage
          mov    edi,eax
          cmp    edi,ebx
          jz     L00426AE0
          push    esi
          push    edi
          call    jmp_ctxlogging.dll!ICAClientError_display
          push    edi
          call    jmp_ctxlogging.dll!ICAClientError_destroy
 L00426AE0:
          xor    eax,eax
          pop    edi
          pop    esi
          pop    ebx
          mov    ecx,[esp+000005A8h]
          xor    ecx,esp
          call    SUB_L0042A175
          mov    esp,ebp
          pop    ebp
          retn    0010h

更に掘ってみた

 L0045BD7C:
          mov    ecx,[L00597B30]
          push    ecx
          push    L00597B34
          call    jmp_confmgr.dll!ConfigurationManager_new
 <- ここで、アクセスエラーが返って来て失敗
          mov    esi,eax
          cmp    esi,edi
          jz     L0045BDB3
          mov    edx,[L00597B30]
          push    edx
          call    jmp_icafile.dll!ICAFile_destroy
          mov    eax,esi
          pop    esi
          mov    [L00597B30],edi
          mov    [L00597B34],edi
          pop    edi
          pop    ebx
          retn    0010h

というわけで、confmgr.dll を掘ってみた

 L1000C0BE:
          cmp    dword ptr [esi+38h],00000000h
          jz     L1000C13B
          cmp    dword ptr [esi+34h],00000000h
          jz     L1000C13B
          cmp    dword ptr [esi+30h],00000000h
          jz     L1000C13B
          test    byte ptr [edi+40h],04h
          jz     L1000C0E7
          push    00000003h
          push    SWC1000F24C_All_Regions
          push    esi
          call    SUB_L1000B940
          test    eax,eax
          jnz    L1000C12C
 L1000C0E7:
          test    byte ptr [edi+40h],08h
          jz     L1000C0FE
          push    00000004h
          push    SWC1000F24C_All_Regions
          push    esi
          call    SUB_L1000B940
          test    eax,eax
          jnz    L1000C12C
 L1000C0FE:
          test    byte ptr [edi+40h],02h
          jz     L1000C115
          push    00000000h
          push    SWC1000F24C_All_Regions
          push    esi
          call    SUB_L1000B940
          test    eax,eax
          jnz    L1000C12C
 L100
0C115:
          test    byte ptr [edi+40h],01h
          jz     L1000C134
          push    00000001h
          push    SWC1000F24C_All_Regions
          push    esi
          call    SUB_L1000B940
          test    eax,eax
          jz     L1000C134
 L1000C12C:
          push    esi
          call    SUB_L1000B3C0
          xor    esi,esi
 L1000C134:

どうも、関連レジストリツリーの読み込みに一つでも失敗するとエラー返すっぽい

ica4
正常系のツリー見たら、異常系のツリーにないレジストリーツリーがあった
w

ちなみに、Citrix Client 10.x から 14.x までは同じ影響を受けるのを確認 ・ω・

これは、 wfica32.exe /setup では解決しない。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です