知識マップ: Windowsのセッション分離をどう理解するか ── Session 0・RDP・複数ユーザー同時実行

記事「Windowsのセッション分離をどう理解するか ── Session 0・RDP・複数ユーザー同時実行」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

Windowsのサービスはセッション0という隔離されたセッションで動作し、この分離がウィンドウメッセージ経由の権限昇格を構造的に遮断する一方、サービスは直接UIを出せないためUIが必要な場合はプロセス間通信で別プロセスに分離するか、タスクスケジューラの昇格タスクモデルで対話ユーザー側にUIを持たせる。Remote Desktop Services(RDS)はRDPを使って複数ユーザーの同時セッションを提供するが、通常のクライアントOSは単一セッションが基本で、Windows Enterpriseマルチセッションのみが例外となる。Mutexなどの名前付きカーネルオブジェクトはセッションごとに独立した名前空間を持つため、マシン全体で1つに絞りたい場合はGlobal\プレフィックスを明示しないと意図しない多重起動を招く。共有PCやRDS環境では、一時フォルダーやHKCUの扱いを誤ると複数ユーザー間で状態が意図せず共有される。

Windowsのセッション分離の知識マップサービスが動くセッション0による権限昇格の遮断、RDSとRDPによる複数同時セッション、名前付きカーネルオブジェクトのセッション名前空間とGlobalプレフィックスの関係を示す図前提とする防止する前提とする利用する前提とする前提とするに保存されるで構成できる原因になり得る防止する利用する前提とする用いるのは非推奨で確認できるで確認できる利用する利用する原因になり得る推奨される対応原因になり得るセッション0Remote Desktop Services(RDS)名前付きカーネルオブジェクトのセッション名前空間Windowsサービスウィンドウメッセージ経由の権限昇格プロセス間通信(IPC)名前付きパイプElevated Task Modelタスクスケジューラの無人実行管理者権限名前付きMutexGlobal\プレフィックス意図しない多重起動多重起動防止(シングルインスタンス化)RDP(リモートデスクトッププロトコル)RDS CAL(クライアントアクセスライセンス)WTSGetActiveConsoleSessionIdGetSystemMetrics(SM_REMOTESESSION)ProcessIdToSessionIdセッションごとの一時フォルダーデバイスリダイレクションHKEY_CURRENT_USER(HKCU)セッション間の意図しない状態共有

概念間の関係(全20件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

セッション0
Windows Vista以降、サービスなど対話的ユーザーに関わらないプロセス専用に予約された、ユーザーの対話的セッションとは分離されたセッション。
Remote Desktop Services(RDS)
1台のWindows Serverに複数ユーザーが同時にログオンし、それぞれ独立したセッションでデスクトップやアプリを使えるようにするサーバーの役割・機能群。
名前付きカーネルオブジェクトのセッション名前空間
Mutex・イベント・セマフォなどの名前付きカーネルオブジェクトが、プレフィックスを付けない限りセッションごとに独立して配置される名前空間。
Windowsサービス
ユーザーのサインインと無関係にバックグラウンドで動くWindowsのプロセス。
プロセス間通信(IPC)
別プロセスとデータや合図をやり取りする仕組みの総称。
Elevated Task Model
標準ユーザーのUIアプリから、管理者権限で動くスケジュールタスクを起動して短い定型処理を行わせる権限分離モデルである。
名前付きMutex
名前を指定して作成し、その名前を知っている他のプロセスからも同じインスタンスを参照できる、相互排他用のWindowsカーネルオブジェクト。
多重起動防止(シングルインスタンス化)
同一アプリケーションの起動を、セッション・ユーザー・マシンなど選んだ単位で1つに制限する設計。
WTSGetActiveConsoleSessionId
物理コンソールに接続されているセッションIDを取得するWin32 APIで、RDP経由のセッションは対象に含まない。
RDP(リモートデスクトッププロトコル)
Windowsのリモートデスクトップ接続で、画面表示や入力をネットワーク越しにやり取りするプロトコル。
HKEY_CURRENT_USER(HKCU)
セッションではなくログオンユーザーに紐付くレジストリのルートキーで、同一ユーザーの複数セッション間で値が共有される。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。