現象
シームレスモード、固定サイズのウィンドウまたはRDP初期プログラムとして公開されている公開アプリケーションから正常にログオフしたあと、Citrixサーバー管理ツールまたはターミナルサーバーの管理ツール内にアクティブ状態のセッションが残ることがあります。このセッションは手動でリセットすることができます。また、ターミナルサービス管理コンソールまたはAccess Suite管理コンソールでセッション内の特定のプロセスを終了すると、セッションがリセットされます。
原因
通常アプリケーションを公開する場合、メインの実行ファイルを指定しますが、バックグラウンドで実行する追加のプロセスが発生するようなアプリケーションでは、メイン実行ファイルの応答では終了しない場合があります。追加のプロセスは、起動されたスクリプトまたはRunOnceKeyなどの特定のレジストリキーで作成されている場合もあります。
HKEY_LOCAL_MACHINE¥SW¥Microsoft¥Windows¥CurrentVersion¥RunOnce
いくつかのプロセスには、機能を追加するための可視ウィンドウを作成するものがあります。
デフォルトでは、Presentation ServerおよびWindowsにはユーザーがメインアプリケーションを終了したときにバックグラウンドで動作しているプロセスを終了する仕組みがないため、これらの方法の1つでアプリケーションを実行するとき、Explorer.exeデスクトップが実行されずこの現象が発生します。
Presentation Serverには、「システム」タイプのセカンダリプロセスとしてチェックする実行ファイルのリストがハードコーディングされており、すべてのユーザーアプリケーションプロセスが終了されるとそれらの実行ファイルも終了します。リストには、次の実行ファイルが含まれています;
atok1*.exe
clipsrv.exe
conime.exe
csrss.exe
ctfmon.exe
ddhelp.exe
eventlog.exe
iatokik*.exe
iatokqb*.exe
iatqb1*.exe
ibdbsch.exe
imejp98m.exe
imejpmgr.exe
imepadsv.exe
jsvschvw.exe
lmsvcs.exe
lsass.exe
msgsvc.exe
nddeagent.exe
nddeagnt.exe
netdde.exe
netstrs.exe
os2srv.exe
proquota.exe
screg.exe
smss.exe
spoolss.exe
ssonsvr.exe
wfshell.ex
win.com
winlogon.exe
wpabaln.exe
wuauclt.exe
注: 新規に特定のプロセスを追加するには、この文書の[解決方法]を参照してください。
セカンダリプロセスの例
CTX123588 - Offline Plug-inバージョン5.2でサーバーへストリーム配信するときにICAセッションが5分間アクティブな状態になる
CTX106702 - [Document Not Found]
CTX112954 - [Document Not Found]
CTX108039 - [Document Not Found]
Cwbprovd.exe:
Cwbprovd.exeプロセスは、IBMクライアントアクセスによって起動されます。システム上にIBMクライアントアクセスが存在し上記と同じような動作が見られる場合は、以下の手順に従ってください。
1. 問題が発生しているセッションのセッションIDを確認します。
2. ログオフする前に、コマンドプロンプトで以下のコマンドを実行してCwbprovd.exeを手動で停止します。
kill cwbprovd.exe session id
3. 公開アプリケーションを正常に終了させます。
4. Cwbprovd.exeプロセスは(他の2つのプロセスと共に)、以下のレジストリキーを使用してログオン時にIBMクライアントアクセスによって(ユーザーが実行しなくても)起動されます。
HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Windows NT¥CurrentVersion¥Winlogon¥Userinit
CWBCFWTSというユーティリティを使用して、レジストリからこれらのプロセスの設定を削除できます。このユーティリティについての詳細は、IBMに問い合わせてください。
注:IBMクライアントアクセスエクスプレス版が稼動するサーバーでは、この動作は報告されていません。
Proquota.exe:
Proquota.exeは、Windows 2000のポリシーで[プロファイルのサイズを制限する]を有効にすると起動するプロセスです。このプロセスは、Seamgr.exeプロセスと競合する場合があります。この2つのプロセスのいずれかを手動で停止することで、問題を一時的に修正し、セッションのリセットが可能になります。この問題は、MetaFrame 1.8 for Windows 2000のService Pack 2をインストールすると解決します。
Sxplog32.exe:
Sxplog32.exeは、Computer Associates社のSoftWare Delivery Agentが起動するプロセスです。このプロセスは、winlogonレジストリキーのuserinit値に記述されています。このプロセスを手動で停止することで、問題を一時的に修正し、セッションのリセットが可能になります。
Etlits.exeおよびEntell50.exe:
Etlits.exeおよびEntell50.exeは、Entrust 6.1によって初期化されるプロセスです。このプロセスは、winlogonレジストリキーのuserinit値に記述されています。このプロセスを手動で停止することで、問題を一時的に修正し、セッションのリセットが可能になります。
Wisptis.exe:
Wisptis.exeは、システムサービスとして実行するプロセスで、SDKの他のコンポーネントに対してペンデータコレクションを提供します。この実行ファイルは、コンポーネントがペンと情報をやりとりする必要がある場合(例:インクの収集、動作の検出など)に、サービスとして入力装置と直接通信します。Tablet PCでは、Wisptis.exeはデジタイザーと情報をやりとりする一方で、デスクトップ上でマウスと情報のやりとりをします。実行ファイルの名前は、開発チームの頭文字(Windows Ink Service Platform Tablet Input Subsystem)をとって作れられました。Wisptis.exeをリネームしたり削除したりすることはできません。Windows File Protectionが次回にAdobe Acrobat 6.0が起動されたときに、ファイルを再インストールします。通常、Wisptix.exeはシステム上にインストールされています。
Windows Journal ViewerまたはMicrosoft Office 2003をインストールします。
Ssonsvr.exe:
アカウントの[プロパティ]ダイアログボックスの[環境]タブで起動プログラムが指定されているユーザーが、パススルー認証機能を有効にしたICAパススルークライアントを使用すると、ICAセッション内でSsonsvr.exeが実行されるという問題がありました。この場合、ユーザーがその起動アプリケーションを終了してもICAセッションがログオフできず、管理者が手動でSsonsvr.exeプロセスを終了しなければならなくなります。
この問題は、ユーザーが起動アプリケーションを終了したときに、Ssonsvr.exeプロセスを終了するためのスレッドが起動しないために発生します。
Hotfix XJ103W2K030を適用すると、ユーザーが起動アプリケーションを終了したときに、Ssonsvr.exeプロセスを終了するためのスレッドが起動するようになり、この問題が解決されます。
Ssonhell.exe、Ssobho.exe、Ssomho.exe:
以下の文書を参照してください。
CTX103640 - [Document Not Found]
CTX104671 - [Document Not Found]
解決方法
以下のレジストリキーは、以下の製品で有効です。
• Citrix Presentation Server 4.5
• Citrix Presentation Server 4.0
• MetaFrame Presentation Server 3.0
• MetaFrame XP, Service Pack 2/ Feature Release 2以降
• Hotfix ME183W030、ME183T032以降を適用したMetaFrame 1.8, Service Pack 3 for Windows 2000以降
• MetaFrame 1.8 for Teriminal Server 4.0
まずはじめに、問題となっているアプリケーションおよび関連するプロセスがTerminal Services環境外のWindowsワークステーション上に正しく存在していることを確認します。
問題となっているアプリケーションおよび関連するプロセスが存在しなかった場合、メインアプリケーションの終了時にセカンダリアプリケーションを終了する仕組みが動作しない場合があります。また、その場合は、アプリケーションの製造会社への問い合わせが必要な場合もあります。
問題を回避するには、以下のレジストリキーにプロセスのファイル名を追加します。
注:Presentation Server 4.0でこのレジストリキーを実行する場合は、[Document Not Found]または[Document Not Found]を適用する必要があります。
HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Citrix¥wfshell¥TWI
値の名前:LogoffCheckSysModules
データ型:REG_SZ
文字列:MyAppName.exe
注1:
このキーをメインの公開アプリケーションの実行ファイル名と置き換えると、公開アプリケーションの正しい起動に失敗する原因となることがあります。指定した公開アプリケーションのメインの実行ファイルが存在していない場合は、他の問題があることが考えられます。
注2:
このキーを可視ウィンドウを持つセカンダリプロセスの実行ファイル名で置き換えないでください。この仕組みは、可視ウィンドウを持たないセカンダリプロセスを終了するように設計されています。アプリケーションウィンドウが可視の場合には、ユーザーがウィンドウを見てそのウィンドウを自身で閉じることを意図していると考えられます。その場合、そのような実行ファイル名でレジストリキーを置き換えると、不具合が発生する可能性があります。
アプリケーションが現在有効になっているウィンドウまたはシームレスセッションのシステムトレイアイコンに表示されないことがあります。非シームレスモードウィンドウでアプリケーションを実行して、2つ目のプロセスを発生させるアプリーケーション内で機能を実行し、メインのアプリケーションウィンドウを最小化します。2つ目のプロセスによって表示されるウィンドウが、バックグラウンドで表示されます。RDPリスナー上で構成されたRDP初期アプリケーションセッションでも、同じような動作が見られます。ユーザーがログオフスクリプトを使用している場合、ログオフスクリプトは発生したプロセスのチェックおよびプロセスの終了のチェックに使用できます。アプリケーションが発生したすべての子プロセスを終了することが理想的な動作です。
注3:
複数の実行ファイル名を記述する場合はファイル名をカンマ(,)で区切ります。カンマの後にスペース文字は入れません。たとえば以下のように記述します。
App1.exe,app2.exe,app3.exe
関連情報
この資料は米国のCitrix Knowledge Baseで提供している情報をもとに作成したものです。
Document ID:CTX891671
Graceful Logoff from a Published Application Renders the Session in Active State