Windowsのユーザー境界の知識マップ(知識グラフ)
type: Dataset
description: ユーザープロファイルは実行ユーザーのSIDを前提に作られ、%LOCALAPPDATA%・%APPDATA%(Roaming)・NTUSER.DATはそのプロファイル配下に保存され、CurrentUserスコープのDPAPIマスターキーもプロファイル配下に置かれる。ユーザーの証明書ストアの実体はHKCU配下のレジストリにある。通常のログオンではHKCU(Classes配下を除く)の実体はロードされたNTUSER.DATであり(LocalSystemでは既定ユーザーに関連付く)、サービスからHKCUを使うことは推奨されない。DPAPIはマスターキーで秘密を保護するため、CurrentUserスコープは別ユーザーからの復号失敗の原因になることがあり、LocalMachineスコープはそれを軽減する。資格情報マネージャーの中身はDPAPIで保護され、保存したユーザーの文脈でのみ使える。Chromium系ブラウザーのプロファイルは既定で%LOCALAPPDATA%配下にありDPAPIを利用するので、フォルダーコピーではログイン状態を持ち出せない。タスクスケジューラの実行はログオン種別で、IISアプリケーションプールのプロファイル読み込みはloadUserProfile設定で構成する。S4Uログオンは暗号化ファイル(EFS)とも資格情報マネージャーの金庫とも両立せず、管理者によるパスワードリセットはDPAPI復号失敗の原因になり得る。ASP.NET Core Data Protectionの鍵リングはプロファイルが使える環境で%LOCALAPPDATA%に置かれDPAPIで暗号化される。全ユーザー・サービスで共有するデータにはProgramData配下、サービスの証明書にはコンピューターの証明書ストアが推奨される。ネットワークドライブの割り当てはログオンセッションに保存され、UAC昇格したプロセスからは既定で見えない。実行ユーザーのSIDはwhoamiとProcess Explorerで、実際に読まれたプロファイル配下のパスはProcess Monitorで確認できる。AppData\LocalLowもプロファイル配下にあり、HKCU\Software\Classesの実体UsrClass.datは%LOCALAPPDATA%配下に置かれる。サービスがユーザーの設定を読む必要がある場合は偽装(impersonation)とRegOpenCurrentUserの利用が推奨される。LocalServiceアカウントは自分のユーザープロファイルを持ち、LocalSystemのコンテキストはPsExecで対話シェルを開いて確認できる。
language: ja
creator: 合同会社小村ソフト
license: https://creativecommons.org/licenses/by/4.0/
is accessible for free: true
keywords: SID(セキュリティ識別子)
keywords: ユーザープロファイル
keywords: DPAPI
keywords: 資格情報マネージャー(cmdkey)
keywords: NTUSER.DAT
keywords: HKEY_CURRENT_USER(HKCU)
keywords: %LOCALAPPDATA%
keywords: %APPDATA%(Roaming)
keywords: DPAPIマスターキー
keywords: DataProtectionScope.CurrentUser
keywords: DataProtectionScope.LocalMachine
keywords: DPAPI復号失敗
keywords: Chromium系ブラウザーのプロファイル
keywords: タスクスケジューラの無人実行
keywords: ログオン種別(LogonType)
keywords: Windowsサービス
keywords: IISアプリケーションプール
keywords: loadUserProfile設定
keywords: ユーザーの証明書ストア
keywords: S4Uログオン
keywords: NTFS暗号化(EFS)ファイル
keywords: 管理者によるパスワードのリセット
keywords: ASP.NET Core Data Protection
keywords: %ProgramData%配下の保存先
keywords: コンピューターの証明書ストア
keywords: ネットワークドライブ(マップされたドライブ文字)
keywords: ログオンセッション
keywords: UAC昇格(管理者として実行)
keywords: whoamiコマンド
keywords: Process Explorer
keywords: Process Monitor(procmon.exe)
keywords: AppData\LocalLow
keywords: HKEY_CURRENT_USER\Software\Classes
keywords: 偽装(impersonation)
keywords: LocalSystemアカウント
keywords: LocalServiceアカウント
keywords: PsExec
distribution: DataDownload
  encoding format: application/ld+json
distribution: DataDownload
  encoding format: text/turtle
citation: https://learn.microsoft.com/windows/win32/shell/about-user-profiles
citation: https://learn.microsoft.com/troubleshoot/windows-client/user-profiles-and-logon/renaming-user-account-not-change-profile-path
citation: https://learn.microsoft.com/troubleshoot/windows-server/user-profiles-and-logon/desktop-location-unavailable
citation: https://learn.microsoft.com/windows/win32/services/services-and-the-registry
citation: https://learn.microsoft.com/windows/win32/services/localsystem-account
citation: https://learn.microsoft.com/windows/win32/shell/knownfolderid
citation: https://learn.microsoft.com/previous-versions/ms995355(v=msdn.10)
citation: https://learn.microsoft.com/dotnet/api/system.security.cryptography.protecteddata
citation: https://learn.microsoft.com/windows/win32/api/dpapi/nf-dpapi-cryptprotectdata
citation: https://learn.microsoft.com/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh994565(v=ws.11)
citation: https://learn.microsoft.com/windows/win32/seccrypto/system-store-locations
citation: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/user_data_dir.md
citation: https://security.googleblog.com/2024/07/improving-security-of-chrome-cookies-on.html
citation: https://learn.microsoft.com/windows/win32/taskschd/taskschedulerschema-logontype-simpletype
citation: https://learn.microsoft.com/iis/configuration/system.applicationhost/applicationpools/add/processmodel
citation: https://learn.microsoft.com/iis/manage/configuring-security/application-pool-identities
citation: https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/default-settings
citation: https://learn.microsoft.com/windows-hardware/drivers/install/local-machine-and-current-user-certificate-stores
citation: https://learn.microsoft.com/troubleshoot/windows-client/networking/mapped-drives-not-available-from-elevated-command
citation: https://learn.microsoft.com/windows-server/administration/windows-commands/whoami
citation: https://learn.microsoft.com/sysinternals/downloads/process-explorer
citation: https://learn.microsoft.com/sysinternals/downloads/procmon
citation: https://learn.microsoft.com/windows/win32/services/localservice-account
citation: https://learn.microsoft.com/sysinternals/downloads/psexec
about: article

合同会社小村ソフト
type: Organization

SID(セキュリティ識別子)
type: Concept
definition: Windowsがユーザーやグループなどのセキュリティプリンシパルを一意に識別するために使う識別子。アクセストークンに含まれ、ACL判定やプロファイルの紐づけの基準になる。
alternative label: SID
alternative label: Security Identifier
verified by: whoamiコマンド
verified by: Process Explorer

ユーザープロファイル
type: Concept
definition: ファイルシステム上のプロファイルフォルダー群と、ユーザーレジストリハイブNTUSER.DATから成る、サインインしたユーザーの作業環境の実体。
alternative label: User Profile
alternative label: Windowsユーザープロファイル
requires: SID(セキュリティ識別子)
verified by: Process Monitor(procmon.exe)

DPAPI
type: Concept
definition: 実行中のマシン上でアプリの秘密情報を保護するWindowsのデータ保護API。
alternative label: データ保護API
uses: DPAPIマスターキー

資格情報マネージャー(cmdkey)
type: Concept
definition: サーバーごとの資格情報をユーザープロファイル単位で保存し、以後の認証時に自動的に提示する仕組み。サービスで使うにはその実行アカウントのコンテキストで登録する必要がある。
alternative label: cmdkey
alternative label: Credential Manager
uses: DPAPI

NTUSER.DAT
type: Concept
definition: Windowsのユーザープロファイルに含まれるユーザーレジストリハイブの実体ファイルで、サインイン時に読み込まれてHKEY_CURRENT_USERとして使われる。
alternative label: ユーザーレジストリハイブ
alternative label: HKCUの実体
stored in: ユーザープロファイル

HKEY_CURRENT_USER(HKCU)
type: Concept
definition: セッションではなくログオンユーザーに紐付くレジストリのルートキーで、同一ユーザーの複数セッション間で値が共有される。
alternative label: HKCU
not recommended for: Windowsサービス

Windowsサービス
type: Concept
definition: ユーザーのサインインと無関係にバックグラウンドで動くWindowsのプロセス。
alternative label: サービス

%LOCALAPPDATA%
type: Concept
definition: ユーザーごとの、ローミングしないデータを保存する既知フォルダーで、ユーザーごとのデータの既定の置き場所。
alternative label: SpecialFolder.LocalApplicationData
alternative label: AppData\Local
alternative label: FOLDERID_LocalAppData
stored in: ユーザープロファイル

%APPDATA%(Roaming)
type: Concept
definition: 移動ユーザープロファイル環境でログオン・ログオフ時に同期される既知フォルダー。
alternative label: SpecialFolder.ApplicationData
alternative label: AppData\Roaming
alternative label: %APPDATA%
alternative label: FOLDERID_RoamingAppData

DPAPIマスターキー
type: Concept
definition: DPAPIがデータ保護に使うランダム生成の鍵。CurrentUserスコープではユーザーのログオン資格情報から派生した鍵で暗号化(保護)され、ユーザープロファイル配下に保存される。
alternative label: DPAPI master key

DataProtectionScope.CurrentUser
type: Concept
definition: DPAPIで保護したデータの復号主体をそのWindowsユーザーに限定するスコープ指定で、通常のデスクトップアプリで基本となる。
alternative label: CurrentUserスコープ
alternative label: ユーザースコープ

DPAPI復号失敗
type: Concept
definition: 保護時と復号時で紐づくWindowsユーザーやコンピューターの鍵材料が一致せず、ProtectedData.Unprotectが失敗する事象。
alternative label: CryptographicException
alternative label: 復号できないデータ

DataProtectionScope.LocalMachine
type: Concept
definition: DPAPIで保護したデータを同じマシン上で動く任意のプロセスから復号可能にするスコープ指定で、共用端末では危険になりやすい。
alternative label: LocalMachineスコープ
alternative label: マシンスコープ

ユーザーの証明書ストア
type: Concept
definition: ユーザーアカウントごとに別に存在する証明書ストア。
alternative label: CurrentUser
alternative label: 現在のユーザーの証明書ストア
broader: certificate-store
stored in: HKEY_CURRENT_USER(HKCU)

Chromium系ブラウザーのプロファイル
type: Concept
definition: 履歴・Cookie・拡張機能・保存パスワードなどブラウザーのユーザー状態を保持する、ChromeやEdgeなどChromium系ブラウザーのフォルダー。Windowsでは既定で%LOCALAPPDATA%配下に置かれる(--user-data-dir等で変更可能)。
alternative label: User Data
alternative label: ブラウザプロファイル(Chrome/Edge)
uses: DPAPI

タスクスケジューラの無人実行
type: Concept
definition: 指定したアカウントで、スケジュールやログオンなどのトリガーに従いプログラムを実行するWindowsの仕組み。ログオン種別(対話トークン・パスワード保存・S4Uなど)の設定によっては、ユーザーがログオンしていなくても実行できる。
configured by: ログオン種別(LogonType)

ログオン種別(LogonType)
type: Concept
definition: タスクの実行アカウントをどう認証するかを決める内部区分。対話トークン(InteractiveToken)・パスワードを保存するPassword・パスワードを保存しないS4Uのいずれかを取り、S4Uはネットワーク上のリソースと暗号化ファイル(EFS)へのアクセスができない。
alternative label: LogonType
alternative label: InteractiveToken
alternative label: Password
alternative label: S4U

IISアプリケーションプール
type: Concept
definition: IIS上のWebアプリの実行単位。プールのIDというアカウントで無人実行される。
alternative label: アプリプールID
configured by: loadUserProfile設定

loadUserProfile設定
type: Concept
definition: IISアプリケーションプールのワーカープロセスがユーザープロファイルを読み込むかどうかを制御するprocessModelの属性。
alternative label: Load User Profile

S4Uログオン
type: Concept
definition: パスワードを保存せずにユーザーとしてタスクを実行するログオン方式。タスクスケジューラの「パスワードを保存しない」構成で使われ、ネットワークにも暗号化ファイル(EFS)にもアクセスできない。
alternative label: S4U
alternative label: Service for User
incompatible with: NTFS暗号化(EFS)ファイル
incompatible with: 資格情報マネージャー(cmdkey)

NTFS暗号化(EFS)ファイル
type: Concept
definition: EFS(Encrypting File System)で暗号化されたファイル。NTFS圧縮と同様、アクセスが同期処理に変換されるため非同期発行でも同期的に完了する。
alternative label: EFS
alternative label: Encrypting File System

管理者によるパスワードのリセット
type: Concept
definition: 管理者がユーザーのWindowsパスワードをリセットする操作。DPAPIの保護に使われる鍵材料への紐付けが外れ、保護済みデータへアクセスできなくなることがある。
alternative label: パスワードリセット

ASP.NET Core Data Protection
type: Concept
definition: Cookie認証などの保護に使うASP.NET Coreのデータ保護基盤。実行環境に応じて鍵リングの保存先を自動選択し、Windowsでユーザープロファイルが使える場合はDPAPIで暗号化する。
alternative label: Data Protection(ASP.NET Core)

%ProgramData%配下の保存先
type: Concept
definition: 管理者が1台につき1つ設定し、全ユーザーで共有するマシン単位の設定を置くフォルダー。
alternative label: Environment.SpecialFolder.CommonApplicationData
recommended for: Windowsサービス

コンピューターの証明書ストア
type: Concept
definition: PCに1つで、全ユーザーとサービスに共通の証明書ストア。
alternative label: LocalMachine
alternative label: ローカルコンピューターの証明書ストア
broader: certificate-store
recommended for: Windowsサービス

ネットワークドライブ(マップされたドライブ文字)
type: Concept
definition: UNCパスの共有フォルダーに割り当てたドライブ文字(Z:など)で、実体はログオンセッション固有のシンボリックリンクオブジェクト(DosDevices)である。
alternative label: ドライブ文字
alternative label: リダイレクトされたドライブ
stored in: ログオンセッション

ログオンセッション
type: Concept
definition: ユーザーのログオンやサービスの起動のたびにOSが作る実行の文脈で、ドライブ文字のマップはログオンSIDに基づきこの単位で管理される。

UAC昇格(管理者として実行)
type: Concept
definition: UAC有効な管理者ユーザーのログオン時に、権限を制限した通常トークンと完全な管理者トークンという、リンクされた2つのログオンセッションが作られる仕組み。
alternative label: UAC elevation
alternative label: リンクされたログオンセッション

whoamiコマンド
type: Concept
definition: 現在のプロセスの実行ユーザー名・SID・グループ・特権を表示するWindowsのコマンド。/userでユーザー名とSID、/allで全情報を表示する。
alternative label: whoami

Process Explorer
type: Concept
definition: プロセスに読み込まれているDLLだけでなく、ハンドル・スレッドスタック・GDI/USERオブジェクト数なども確認できるSysinternalsのプロセス監視ツール。管理者として実行すると他ユーザーやサービスのプロセスも参照できる。

Process Monitor(procmon.exe)
type: Concept
definition: ファイルI/O・レジストリ・プロセス/スレッド活動をリアルタイムに監視できるSysinternalsのツール。Advanced Outputを有効にすると、IRPやファストI/Oのカーネル側の語彙で操作を表示する。
alternative label: Procmon
alternative label: Process Monitor

AppData\LocalLow
type: Concept
definition: 低整合性レベルで動作するプロセスが書き込める数少ない場所として用意された、プロファイル内のフォルダー。
alternative label: LocalLow
stored in: ユーザープロファイル

HKEY_CURRENT_USER\Software\Classes
type: Concept
definition: COMがコンピューター全体の情報を見る前に先に参照する、そのユーザーだけに見えるCOMクラス登録の場所。
alternative label: HKCU\Software\Classes
stored in: %LOCALAPPDATA%

偽装(impersonation)
type: Concept
definition: サービスが、接続してきたクライアントユーザーの権限を借りてリモート資源にアクセスする仕組み。
alternative label: クライアント偽装
recommended for: Windowsサービス

LocalServiceアカウント
type: Concept
definition: サービスの実行アカウントの1つ。ネットワーク上では匿名資格情報として認証されるため、共有フォルダーへのアクセスには使えない。
alternative label: LocalService
uses: ユーザープロファイル

LocalSystemアカウント
type: Concept
definition: サービスの実行アカウントの1つ。ローカルでは広範な特権を持つ一方、ネットワーク上ではコンピューターの資格情報としてリモートサーバーに認証される。
alternative label: LocalSystem
verified by: PsExec

PsExec
type: Concept
definition: リモートまたはローカルで任意のアカウント(SYSTEMを含む)としてプロセスを起動できるSysinternalsのツール。psexec -s -i cmdでSYSTEMのコンテキストの対話シェルを開ける。
alternative label: psexec.exe

subject: ユーザープロファイル
predicate: requires
object: SID(セキュリティ識別子)
description: ユーザープロファイルは実行ユーザーのSIDに紐づいて作られ(ProfileListはSIDをキーに持つ)、SIDが異なれば初期状態から始まる別のプロファイルになる。
evidence: about-user-profiles
evidence: renaming-user-account-not-change-profile-path
verified at: 2026-08-28
certainty: established

subject: NTUSER.DAT
predicate: storedIn
object: ユーザープロファイル
description: ユーザーレジストリハイブの実体NTUSER.DATはユーザープロファイルに含まれ、ログオン時にロードされる。
evidence: about-user-profiles
verified at: 2026-08-28
certainty: established

subject: HKEY_CURRENT_USER(HKCU)
predicate: storedIn
object: NTUSER.DAT
description: 対話ログオンしたユーザーのプロセスでは、HKEY_CURRENT_USERの中身(HKCU\Software\Classes配下を除く)はログオン時にロードされたそのユーザーのNTUSER.DATがマップされたものになる。Classes配下は別ファイルUsrClass.datが実体で、LocalSystemのように既定ユーザーへ関連付くコンテキストでもこの関係は成り立たない。
evidence: about-user-profiles
evidence: desktop-location-unavailable
verified at: 2026-08-28
certainty: context-dependent

subject: HKEY_CURRENT_USER(HKCU)
predicate: notRecommendedFor
object: Windowsサービス
description: サービスからHKEY_CURRENT_USERへアクセスすべきではない。LocalSystemのプロセスではHKCUが既定ユーザーに関連付けられ、ユーザーの設定が必要な場合はそのユーザーを偽装したうえでRegOpenCurrentUserを使う。
evidence: services-and-the-registry
evidence: localsystem-account
verified at: 2026-08-28
certainty: established

subject: %LOCALAPPDATA%
predicate: storedIn
object: ユーザープロファイル
description: %LOCALAPPDATA%はユーザーごとの既知フォルダーで、実行ユーザーのプロファイル配下に解決される。
evidence: knownfolderid
verified at: 2026-08-28
certainty: established

subject: %APPDATA%(Roaming)
predicate: storedIn
object: ユーザープロファイル
description: %APPDATA%(Roaming)はユーザーごとの既知フォルダーで、既定では実行ユーザーのプロファイル配下に解決される。移動プロファイルやフォルダーリダイレクトを構成したドメイン環境では別の場所になり得る。
evidence: knownfolderid
verified at: 2026-08-28
certainty: context-dependent

subject: DPAPI
predicate: uses
object: DPAPIマスターキー
description: DPAPIはOSが管理するマスターキーで暗号化・復号を行い、アプリケーション側は鍵を保持・管理しない。
evidence: https://learn.microsoft.com/previous-versions/ms995355(v=msdn.10)
verified at: 2026-08-28
certainty: established

subject: DPAPIマスターキー
predicate: storedIn
object: ユーザープロファイル
description: CurrentUserスコープで使われる、ランダムに生成されたユーザーのマスターキーは、ログオン資格情報から派生した鍵で暗号化されてユーザープロファイル配下に保存される。LocalMachineスコープのマシン共通の鍵はこの対象外。
evidence: https://learn.microsoft.com/previous-versions/ms995355(v=msdn.10)
verified at: 2026-08-28
certainty: context-dependent

subject: DataProtectionScope.CurrentUser
predicate: mayCause
object: DPAPI復号失敗
description: CurrentUserスコープで保護したデータを、暗号化したユーザーと異なる実行ユーザー(サービス化・タスク化後のアカウントなど)から復号しようとすると失敗する。
evidence: system.security.cryptography.protecteddata
evidence: nf-dpapi-cryptprotectdata
verified at: 2026-08-28
certainty: context-dependent

subject: DataProtectionScope.LocalMachine
predicate: mitigates
object: DPAPI復号失敗
description: サービスと対話ユーザーの両方から読む秘密をLocalMachineスコープで保護すれば、実行ユーザーの違いによる復号失敗を避けられる。同じマシンの任意のプロセスが復号できるため、読者はファイルACLで絞る。
evidence: system.security.cryptography.protecteddata
verified at: 2026-08-28
certainty: context-dependent

subject: 資格情報マネージャー(cmdkey)
predicate: uses
object: DPAPI
description: 資格情報マネージャーに保存された資格情報はディスク上に置かれDPAPIで保護されるため、復号して使えるのは保存したユーザーの文脈に限られる。
evidence: https://learn.microsoft.com/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh994565(v=ws.11)
verified at: 2026-08-28
certainty: established

subject: ユーザーの証明書ストア
predicate: storedIn
object: HKEY_CURRENT_USER(HKCU)
description: ユーザーの証明書ストアの実体はレジストリのHKEY_CURRENT_USER\Software\Microsoft\SystemCertificates配下にあり、ユーザーごとに分かれる。
evidence: system-store-locations
verified at: 2026-08-28
certainty: established

subject: Chromium系ブラウザーのプロファイル
predicate: storedIn
object: %LOCALAPPDATA%
description: ChromeのUser Dataディレクトリは既定で%LOCALAPPDATA%配下にあり、履歴・Cookie・保存パスワードなどのプロファイルはそこに置かれる。--user-data-dirや自動化ツールの永続ディレクトリ指定で別の場所を使う場合はこの限りではない。
evidence: user data dir.md
verified at: 2026-08-28
certainty: context-dependent

subject: Chromium系ブラウザーのプロファイル
predicate: uses
object: DPAPI
description: ChromeはWindowsでCookie等の暗号鍵の保護にDPAPIを使っており(現在はアプリ束縛暗号化を併用)、プロファイルを別ユーザー・別マシンへコピーしても鍵を復号できない。
evidence: improving-security-of-chrome-cookies-on.html
verified at: 2026-08-28
certainty: established

subject: タスクスケジューラの無人実行
predicate: configuredBy
object: ログオン種別(LogonType)
description: タスクの実行はInteractiveToken・Password・S4Uのログオン種別で構成し、S4Uではパスワードが保存されずネットワークにも暗号化ファイルにもアクセスできない。
evidence: taskschedulerschema-logontype-simpletype
verified at: 2026-08-28
certainty: established

subject: IISアプリケーションプール
predicate: configuredBy
object: loadUserProfile設定
description: アプリケーションプールのワーカープロセスがユーザープロファイルを読み込むかはprocessModelのloadUserProfile属性で構成する。IISは既定ではプロファイルを読み込まない。
evidence: processmodel
evidence: application-pool-identities
verified at: 2026-08-28
certainty: established

subject: S4Uログオン
predicate: incompatibleWith
object: NTFS暗号化(EFS)ファイル
description: S4Uログオンではパスワードが保存されないため、暗号化ファイル(EFS)にもネットワークリソースにもアクセスできない。
evidence: taskschedulerschema-logontype-simpletype
verified at: 2026-08-28
certainty: established

subject: S4Uログオン
predicate: incompatibleWith
object: 資格情報マネージャー(cmdkey)
description: S4Uログオンはネットワーク資格情報を持たないため、実行アカウントの金庫に資格情報を投入しても使えない。使うにはパスワードを保存する構成などへの切り替えが必要になる。
evidence: taskschedulerschema-logontype-simpletype
verified at: 2026-08-28
certainty: established

subject: 管理者によるパスワードのリセット
predicate: mayCause
object: DPAPI復号失敗
description: ローカルアカウントのパスワードを管理者がリセットすると、マスターキーを守る鍵の材料が失われ、過去にCurrentUserスコープで保護した暗号文が復号できなくなることがある(ユーザー自身のパスワード変更操作では復号能力を引き継ぐ)。
evidence: https://learn.microsoft.com/previous-versions/ms995355(v=msdn.10)
verified at: 2026-08-28
certainty: context-dependent

subject: ASP.NET Core Data Protection
predicate: uses
object: DPAPI
description: ユーザープロファイルが使える環境では、Data Protectionの鍵リングはDPAPIで暗号化される。IISホストでプロファイルが無い場合はワーカープロセスアカウントにACLされたHKLMレジストリへフォールバックする。
evidence: default-settings
verified at: 2026-08-28
certainty: context-dependent

subject: ASP.NET Core Data Protection
predicate: storedIn
object: %LOCALAPPDATA%
description: ユーザープロファイルが使える環境では、鍵リングは%LOCALAPPDATA%のASP.NET/DataProtection-Keysに保存される。どの条件にも当てはまらない環境では一時キーになり、再起動で保護済みデータが無効になる。
evidence: default-settings
verified at: 2026-08-28
certainty: context-dependent

subject: %ProgramData%配下の保存先
predicate: recommendedFor
object: Windowsサービス
description: マシン上の全ユーザー・サービスで共有するデータは、実行ユーザーのプロファイルに解決されるAppDataではなくProgramData配下に置き、ACLを設計するのが本記事の推奨。
evidence: knownfolderid
verified at: 2026-08-28
certainty: established

subject: コンピューターの証明書ストア
predicate: recommendedFor
object: Windowsサービス
description: サービスから使う証明書はコンピューターの証明書ストアに入れ、秘密鍵のACLでサービスアカウントに読み取りを許可するのが本記事の推奨。CurrentUserストアの秘密鍵にはサービスの実行ユーザーから届かない。
evidence: local-machine-and-current-user-certificate-stores
verified at: 2026-08-28
certainty: established

subject: ネットワークドライブ(マップされたドライブ文字)
predicate: storedIn
object: ログオンセッション
description: ネットワークドライブの割り当てはログオンセッション単位で保持される。UAC有効な管理者は標準トークンと昇格トークンで別のログオンセッションを持つため、片方で割り当てたドライブ文字はもう片方から見えない。
evidence: mapped-drives-not-available-from-elevated-command
verified at: 2026-08-28
certainty: established

subject: ネットワークドライブ(マップされたドライブ文字)
predicate: incompatibleWith
object: UAC昇格(管理者として実行)
description: 標準トークンのセッションで割り当てたドライブ文字は、昇格したプロセスのログオンセッションからは既定で参照できない。
evidence: mapped-drives-not-available-from-elevated-command
verified at: 2026-08-28
certainty: context-dependent

subject: SID(セキュリティ識別子)
predicate: verifiedBy
object: whoamiコマンド
description: 実行ユーザーのユーザー名とSIDはwhoami /userで、グループ・特権まで含めた全体はwhoami /allで確認できる。ユーザー境界トラブルの調査はここから始める。
evidence: whoami
verified at: 2026-08-28
certainty: established

subject: SID(セキュリティ識別子)
predicate: verifiedBy
object: Process Explorer
description: プロセスのトークンがどのユーザー・どのセッションのものかは、Process Explorerで確認できる。
evidence: process-explorer
verified at: 2026-08-28
certainty: established

subject: ユーザープロファイル
predicate: verifiedBy
object: Process Monitor(procmon.exe)
description: アプリが実際にどのプロファイル配下のパス・レジストリキーを読んだかはProcess Monitorで確認できる。PATH NOT FOUNDの行に現れる期待と違うプロファイルのパスが、ユーザー境界を踏んでいる手がかりになる。
evidence: procmon
verified at: 2026-08-28
certainty: established

subject: AppData\LocalLow
predicate: storedIn
object: ユーザープロファイル
description: AppData\LocalLowもユーザープロファイル配下の既知フォルダーで、低い完全性レベルで動くプロセス用の書き込み先として区分されている。
evidence: knownfolderid
verified at: 2026-08-28
certainty: established

subject: HKEY_CURRENT_USER\Software\Classes
predicate: storedIn
object: %LOCALAPPDATA%
description: HKCU\Software\Classesはユーザーごとの別ハイブで、実体ファイルUsrClass.datは%LOCALAPPDATA%のMicrosoft/Windows配下に置かれる。NTUSER.DATとは別に管理される。
evidence: desktop-location-unavailable
verified at: 2026-08-28
certainty: established

subject: 偽装(impersonation)
predicate: recommendedFor
object: Windowsサービス
description: サービスがユーザーの設定を読む必要がある場合は、HKCUを直接開くのではなく、そのユーザーを偽装したうえでRegOpenCurrentUserを使うのが推奨される。
evidence: services-and-the-registry
verified at: 2026-08-28
certainty: established

subject: LocalServiceアカウント
predicate: uses
object: ユーザープロファイル
description: LocalServiceアカウントはC:\Windows\ServiceProfiles配下に自分のプロファイルを持ち、HKEY_USERSに自分のサブキーを持つ(NetworkServiceも同様)。対話ユーザーのプロファイルとは別物になる。
evidence: localservice-account
verified at: 2026-08-28
certainty: established

subject: LocalSystemアカウント
predicate: verifiedBy
object: PsExec
description: psexec -s -i cmdでSYSTEM(LocalSystem)のコンテキストの対話シェルを開き、SYSTEM側の世界から同じ操作を再現してユーザー境界の問題を確認できる。
evidence: psexec
verified at: 2026-08-28
certainty: established