セッション モニカーを使用したセッション間のアクティブ化

セッション間のアクティブ化 (セッション間ライセンス認証とも呼ばれます) を使用すると、クライアント プロセスは、指定したセッションでローカル サーバー プロセスを開始 (アクティブ化) できます。 この機能は、"RunAs Interactive User" オブジェクトアクティブ化モードとも呼ばれる、対話型ユーザーのセキュリティ コンテキストで実行するように構成されたアプリケーションで使用できます。 セキュリティ コンテキストの詳細については、「 クライアントのセキュリティ コンテキスト」を参照してください。

分散 COM (DCOM) では、システム提供の セッション モニカーを使用して、セッションごとにオブジェクトのアクティブ化を有効にします。 その他のシステム提供モニカーには、 ファイル モニカーアイテム モニカー、汎用 複合モニカーアンチモニカーポインター モニカーURL モニカーが含まれます。

セッション モニカーを使用できるようにするには、DCOM アプリケーションを対話型ユーザーとして実行するように設定する必要があります。 これは、コンポーネント サービス管理ツールを使用して、DCOM アプリケーションのプロパティを表示し、[ID] タブで [対話型ユーザー] を選択することで設定できます。リモート デスクトップ サービス環境で対話型ユーザーとして実行する DCOM アプリケーションの設定に関連するセキュリティ リスクの詳細については、プラットフォーム ソフトウェア開発キット (SDK) の COM ドキュメントの「アプリケーション ID (COM)」セクションを参照してください。

アプリケーションを実行するために他の種類のユーザーが選択されている場合、セッション モニカーはアプリケーションによって無視されます。 セッション モニカーは、COM+ サーバー アプリケーションでも無視されます。 アプリケーションを実行するユーザーの種類を選択するためのその他の方法の詳細については、プラットフォーム SDK の COM ドキュメントを参照してください。

セッション モニカーを作成するには、プロセス サーバーのクラス ID を指定するクラス モニカーを使用して、リモート デスクトップ サービス セッションのセッション ID を作成する必要があります。

セッション モニカーを作成するには

  1. 次の構文を使用して、クラス モニカーの表示名にセッション モニカーの表示名のプレフィックスを付けます。

    "Session:[digits]!clsid:[class id]"
    

    ここで 、数字 はサーバー プロセスが開始されるセッションのセッション ID を表し、 class id はサーバーのクラス ID を表します。 セッション ID は base-10 の数値であることに注意してください。

    Windows XP 以降を実行しているコンピューターの場合、次の構文を使用すると、COM はセッション ID が何であれ、アクティブ化を現在アクティブな物理コンソール セッションに送信します。

    "Session:Console!clsid:[class id]"
    
  2. セッション モニカーを作成したら、結果を MkParseDisplayName 関数または MkParseDisplayNameEx 関数に渡すことができます。

セッション モニカーは、他のモニカーと同じ方法で使用できます。

指定したセッションでローカル サーバー プロセスをアクティブ化する方法を示すコード サンプルについては、「 セッション モニカーの使用」を参照してください。

オブジェクトのアクティブ化、システム提供のモニカー、およびクラス モニカーの詳細については、プラットフォーム SDK の COM ドキュメントを参照してください。

注意

セッション間で作成されるプロセスには、環境ブロックのサイズに上限があります。 この制限は約 4 KB ですが、プロセスの作成に必要なその他の情報 (新しいプロセスのファイル名、ディレクトリ、パラメーターなど) によっては、大きくまたは小さくすることができます。