4.7 セッション 0 の分離4. 新機能や機能変更に伴う互換性問題 この章では、以下のような新機能や機能変更に伴う、互換性問題について紹介します。
セッション 0 の分離とはWindows XP、Windows Vista や Windows 7 では、ユーザーの切り替え機能をサポートしているため、複数のユーザーが同時に 1 台のコンピューターにログオンできます。ユーザーは Windows やプログラムを終了せずに、セッションを切り替えることができます。たとえば、ユーザー A がログオンして Word でドキュメントの編集作業をおこなっている時、ユーザー B が電子メールをチェックする必要があるなら、ユーザー A の Word は実行したまま、ユーザー B がログオンして電子メール アプリケーションを起動することができます。そして、電子メールのチェックが済んだら、再びユーザー A は、Word が実行されたセッションに戻ることができ、ドキュメントの編集作業を続けることができます。 図 4-24 にもあるように、Windows XP や Windows Server 2003、およびそれ以前の Windows では、すべてのサービスはログオンした最初のユーザーと同じセッションで実行されます。このセッションは、セッション 0 と呼ばれます。ただ、サービスをユーザー アプリケーションと同じセッションで実行することは、セキュリティ上危険です。通常、サービスはユーザー アプリケーションより高い権限で実行されているため、悪意のあるプログラムが、自身の権限レベルを昇格させる手段に利用する可能性があるからです。 そこで、Windows Vista と Windows 7 では、セッション 0 ではサービスのみを実行するよう分離しました。これにより、セッション 0 とユーザー アプリケーションは対話することができなくなるため、セキュリティ上の危険が軽減されます。つまり、セッション 0 では、システム プロセスとサービスのみを実行します。そして、最初のユーザーはセッション 1 にログオンし、その後のユーザーはそれに続くセッションにログオンします。 図 4-24: Windows XP と Windows Vista/Windows 7 のセッションの違い 図 4-25: タスク マネージャーによるセッション ID の表示 ページのトップへ 互換性への影響と検証のポイントユーザーがセッション 0 にいると決めつけているドライバーやサービスなどは、セッション 0 の分離により、問題が起こる可能性があります。たとえば、以下のようなサービスが考えられます。
影響を受けるプログラムの具体例は、以下のようなものがあります。
これらのドライバーは、セッション 0 のプロセスでホストされています。 互換性を維持するため、Windows Vista や Windows 7 では「対話型サービス検出」サービスを提供しています。このサービスは、セッション 0 へのダイアログやウィンドウの作成が検出されると、別セッションのユーザーに通知し、ユーザーのデスクトップに図 4-26 のようなダイアログ ボックスを表示します。ここで、[要求の確認] ボタンをクリックすると、セッション 0 に切り替わるため、サービスからのメッセージを読んだり、ダイアログなどを処理したりことができます。「対話型サービスダイアログの検出」ダイアログが表示された後、処理がおこなわれないと、5 分以内にユーザーに再度通知されます。 図 4-26: 「対話型サービスの検出」ダイアログ この機能はあくまで、既存サービスとの互換性のために用意された一時的な回避策です。新たにサービスを提供する際には、この機能に依存せず、正しい対策をとることが重要です。正しい対策については、この節の「セッション 0 の分離への対応」を参照してください。 問題がセッション 0 の分離に起因するものなのかどうかを検証するためには、以下の動作を確認します。
ページのトップへ セッション 0 の分離への対応
|
ページのトップへ