セッション接続と切断の監視

仮想チャネル サーバー アプリケーションなどのサービス アプリケーションでセッション接続と切断を監視するには、リモート デスクトップ サービスに登録する必要があります。 リモート デスクトップ サービスにアプリケーションを登録するには、次の場所にサブキーを追加して、レジストリに仮想チャネル サーバー アプリケーションの名前を格納します。

Hkey_local_machine\システム\CurrentControlSet\コントロール\TerminalServer\アドイン

サブキーには任意の名前を付けることができます。 アプリケーションのシンボリック名を含む REG_SZName が必要です。

Name = AddinName

サブキーと Name の値の両方の最大長は 99 文字です。

サブキーには、サーバー アプリケーションの種類を示す REG_DWORD 値も必要です。

Type = AddinType

AddinType は次の値である必要があります。

説明
3 ユーザー モード アプリケーション、セッション領域。

 

サービス アプリケーションの登録は、登録が実行された後に作成されたセッションでのみ有効になります。

登録されているサービス アプリケーションごとに、クライアントがセッションに接続するか、セッションから切断したときに、リモート デスクトップ サービスによって一連のイベント オブジェクトが通知されます。 各仮想チャネル プラグインは、CreateEvent を呼び出して自身を登録し、通知イベント を作成する必要があります。 これらのイベント オブジェクトの名前は、次の形式に従います。

AddinName-Reconnect

AddinName-Disconnect

AddinName は、サーバー アプリケーションが登録されているレジストリ サブキーの Name 値で指定された文字列です。 セッションでこれらのイベントを作成すると、セッションごとの特別なイベント ディレクトリにイベントが作成されます。 イベント ディレクトリは、他のセッションのアプリケーションがこれらのイベントの状態を変更できないようにすることで、セキュリティを強化します。

サーバーで RECONNECT イベントと DISCONNECT イベントを受信するかどうかを制御するには、次のキーの下のレジストリに RemoteControlPersistent フラグを配置します。

Hkey_local_machine\システム\CurrentControlSet\コントロール\TerminalServer\アドイン\addinname

フラグは、クライアント セッションの開始時または停止時に、RECONNECT イベントと DISCONNECT イベントのシグナル通知を有効または無効にします。 REG_DWORD値の構文は次のとおりです。

RemoteControlPersistent = flag

フラグの値には、1 または 0 を指定できます。 既定値は 0 です。 1 に設定した場合、クライアント セッションが開始または停止した場合、サービス アプリケーションには通知されません。 0 に設定すると、クライアント セッションの開始時に RECONNECT イベントが通知され、クライアント セッションが停止すると DISCONNECT イベントが通知されます。

以前のイベント オブジェクト名形式は、下位互換性のために Windows Server 2008 で引き続きサポートされています。 より安全であるため、新しい Windows Server 2008 形式を使用することをお勧めします。

前のイベント形式は次のとおりです。

Global\AddinName-SessionId-Reconnect
 
Global\AddinName-SessionId-Disconnect

AddinName は、サーバー アプリケーションが登録されているレジストリ サブキーの Name 値で指定された文字列です。 SessionId は、クライアント セッションのセッション識別子です。