@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/windows-user-boundary-appdata-hkcu-dpapi/#article>
    schema:about <https://comcomponent.com/knowledge/security-identifier/>, <https://comcomponent.com/knowledge/windows-user-profile/>, <https://comcomponent.com/knowledge/dpapi/>, <https://comcomponent.com/knowledge/credential-manager/> ;
    schema:mentions <https://comcomponent.com/knowledge/ntuser-dat/>, <https://comcomponent.com/knowledge/hkcu/>, <https://comcomponent.com/knowledge/local-appdata/>, <https://comcomponent.com/knowledge/roaming-appdata/>, <https://comcomponent.com/knowledge/dpapi-master-key/>, <https://comcomponent.com/knowledge/dpapi-currentuser-scope/>, <https://comcomponent.com/knowledge/dpapi-localmachine-scope/>, <https://comcomponent.com/knowledge/dpapi-decryption-failure/>, <https://comcomponent.com/knowledge/chromium-browser-profile/>, <https://comcomponent.com/knowledge/task-scheduler/>, <https://comcomponent.com/knowledge/task-logon-type/>, <https://comcomponent.com/knowledge/windows-service/>, <https://comcomponent.com/knowledge/iis-apppool/>, <https://comcomponent.com/knowledge/iis-load-user-profile/>, <https://comcomponent.com/knowledge/currentuser-store/>, <https://comcomponent.com/knowledge/s4u-logon/>, <https://comcomponent.com/knowledge/efs-encryption/>, <https://comcomponent.com/knowledge/admin-password-reset/>, <https://comcomponent.com/knowledge/aspnet-core-data-protection/>, <https://comcomponent.com/knowledge/programdata-storage/>, <https://comcomponent.com/knowledge/localmachine-store/>, <https://comcomponent.com/knowledge/mapped-network-drive/>, <https://comcomponent.com/knowledge/logon-session/>, <https://comcomponent.com/knowledge/uac-elevation/>, <https://comcomponent.com/knowledge/whoami/>, <https://comcomponent.com/knowledge/process-explorer/>, <https://comcomponent.com/knowledge/procmon/>, <https://comcomponent.com/knowledge/appdata-locallow/>, <https://comcomponent.com/knowledge/hkcu-classes/>, <https://comcomponent.com/knowledge/impersonation/>, <https://comcomponent.com/knowledge/localsystem-account/>, <https://comcomponent.com/knowledge/localservice-account/>, <https://comcomponent.com/knowledge/psexec/> .

<https://comcomponent.com/knowledge/security-identifier/> a skos:Concept ;
    skos:prefLabel "SID(セキュリティ識別子)"@ja ;
    skos:definition "Windowsがユーザーやグループなどのセキュリティプリンシパルを一意に識別するために使う識別子。アクセストークンに含まれ、ACL判定やプロファイルの紐づけの基準になる。"@ja ;
    skos:altLabel "SID" ;
    skos:altLabel "Security Identifier" ;
    ks:verifiedBy <https://comcomponent.com/knowledge/whoami/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/process-explorer/> .

<https://comcomponent.com/knowledge/windows-user-profile/> a skos:Concept ;
    skos:prefLabel "ユーザープロファイル"@ja ;
    skos:definition "ファイルシステム上のプロファイルフォルダー群と、ユーザーレジストリハイブNTUSER.DATから成る、サインインしたユーザーの作業環境の実体。"@ja ;
    skos:altLabel "User Profile" ;
    skos:altLabel "Windowsユーザープロファイル"@ja ;
    ks:requires <https://comcomponent.com/knowledge/security-identifier/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/procmon/> .

<https://comcomponent.com/knowledge/dpapi/> a skos:Concept ;
    skos:prefLabel "DPAPI"@ja ;
    skos:definition "実行中のマシン上でアプリの秘密情報を保護するWindowsのデータ保護API。"@ja ;
    skos:altLabel "データ保護API"@ja ;
    ks:uses <https://comcomponent.com/knowledge/dpapi-master-key/> .

<https://comcomponent.com/knowledge/credential-manager/> a skos:Concept ;
    skos:prefLabel "資格情報マネージャー(cmdkey)"@ja ;
    skos:definition "サーバーごとの資格情報をユーザープロファイル単位で保存し、以後の認証時に自動的に提示する仕組み。サービスで使うにはその実行アカウントのコンテキストで登録する必要がある。"@ja ;
    skos:altLabel "cmdkey" ;
    skos:altLabel "Credential Manager" ;
    ks:uses <https://comcomponent.com/knowledge/dpapi/> .

<https://comcomponent.com/knowledge/ntuser-dat/> a skos:Concept ;
    skos:prefLabel "NTUSER.DAT"@ja ;
    skos:definition "Windowsのユーザープロファイルに含まれるユーザーレジストリハイブの実体ファイルで、サインイン時に読み込まれてHKEY_CURRENT_USERとして使われる。"@ja ;
    skos:altLabel "ユーザーレジストリハイブ"@ja ;
    skos:altLabel "HKCUの実体"@ja ;
    ks:storedIn <https://comcomponent.com/knowledge/windows-user-profile/> .

<https://comcomponent.com/knowledge/hkcu/> a skos:Concept ;
    skos:prefLabel "HKEY_CURRENT_USER(HKCU)"@ja ;
    skos:definition "セッションではなくログオンユーザーに紐付くレジストリのルートキーで、同一ユーザーの複数セッション間で値が共有される。"@ja ;
    skos:altLabel "HKCU" ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/windows-service/> .

<https://comcomponent.com/knowledge/windows-service/> a skos:Concept ;
    skos:prefLabel "Windowsサービス"@ja ;
    skos:definition "ユーザーのサインインと無関係にバックグラウンドで動くWindowsのプロセス。"@ja ;
    skos:altLabel "サービス"@ja .

<https://comcomponent.com/knowledge/local-appdata/> a skos:Concept ;
    skos:prefLabel "%LOCALAPPDATA%"@ja ;
    skos:definition "ユーザーごとの、ローミングしないデータを保存する既知フォルダーで、ユーザーごとのデータの既定の置き場所。"@ja ;
    skos:altLabel "SpecialFolder.LocalApplicationData" ;
    skos:altLabel "AppData\\Local" ;
    skos:altLabel "FOLDERID_LocalAppData" ;
    ks:storedIn <https://comcomponent.com/knowledge/windows-user-profile/> .

<https://comcomponent.com/knowledge/roaming-appdata/> a skos:Concept ;
    skos:prefLabel "%APPDATA%(Roaming)"@ja ;
    skos:definition "移動ユーザープロファイル環境でログオン・ログオフ時に同期される既知フォルダー。"@ja ;
    skos:altLabel "SpecialFolder.ApplicationData" ;
    skos:altLabel "AppData\\Roaming" ;
    skos:altLabel "%APPDATA%" ;
    skos:altLabel "FOLDERID_RoamingAppData" .

<https://comcomponent.com/knowledge/dpapi-master-key/> a skos:Concept ;
    skos:prefLabel "DPAPIマスターキー"@ja ;
    skos:definition "DPAPIがデータ保護に使うランダム生成の鍵。CurrentUserスコープではユーザーのログオン資格情報から派生した鍵で暗号化(保護)され、ユーザープロファイル配下に保存される。"@ja ;
    skos:altLabel "DPAPI master key" .

<https://comcomponent.com/knowledge/dpapi-currentuser-scope/> a skos:Concept ;
    skos:prefLabel "DataProtectionScope.CurrentUser"@ja ;
    skos:definition "DPAPIで保護したデータの復号主体をそのWindowsユーザーに限定するスコープ指定で、通常のデスクトップアプリで基本となる。"@ja ;
    skos:altLabel "CurrentUserスコープ"@ja ;
    skos:altLabel "ユーザースコープ"@ja .

<https://comcomponent.com/knowledge/dpapi-decryption-failure/> a skos:Concept ;
    skos:prefLabel "DPAPI復号失敗"@ja ;
    skos:definition "保護時と復号時で紐づくWindowsユーザーやコンピューターの鍵材料が一致せず、ProtectedData.Unprotectが失敗する事象。"@ja ;
    skos:altLabel "CryptographicException" ;
    skos:altLabel "復号できないデータ"@ja .

<https://comcomponent.com/knowledge/dpapi-localmachine-scope/> a skos:Concept ;
    skos:prefLabel "DataProtectionScope.LocalMachine"@ja ;
    skos:definition "DPAPIで保護したデータを同じマシン上で動く任意のプロセスから復号可能にするスコープ指定で、共用端末では危険になりやすい。"@ja ;
    skos:altLabel "LocalMachineスコープ"@ja ;
    skos:altLabel "マシンスコープ"@ja .

<https://comcomponent.com/knowledge/currentuser-store/> a skos:Concept ;
    skos:prefLabel "ユーザーの証明書ストア"@ja ;
    skos:definition "ユーザーアカウントごとに別に存在する証明書ストア。"@ja ;
    skos:altLabel "CurrentUser" ;
    skos:altLabel "現在のユーザーの証明書ストア"@ja ;
    skos:broader <https://comcomponent.com/knowledge/certificate-store/> ;
    ks:storedIn <https://comcomponent.com/knowledge/hkcu/> .

<https://comcomponent.com/knowledge/chromium-browser-profile/> a skos:Concept ;
    skos:prefLabel "Chromium系ブラウザーのプロファイル"@ja ;
    skos:definition "履歴・Cookie・拡張機能・保存パスワードなどブラウザーのユーザー状態を保持する、ChromeやEdgeなどChromium系ブラウザーのフォルダー。Windowsでは既定で%LOCALAPPDATA%配下に置かれる(--user-data-dir等で変更可能)。"@ja ;
    skos:altLabel "User Data" ;
    skos:altLabel "ブラウザプロファイル(Chrome/Edge)"@ja ;
    ks:uses <https://comcomponent.com/knowledge/dpapi/> .

<https://comcomponent.com/knowledge/task-scheduler/> a skos:Concept ;
    skos:prefLabel "タスクスケジューラの無人実行"@ja ;
    skos:definition "指定したアカウントで、スケジュールやログオンなどのトリガーに従いプログラムを実行するWindowsの仕組み。ログオン種別(対話トークン・パスワード保存・S4Uなど)の設定によっては、ユーザーがログオンしていなくても実行できる。"@ja ;
    ks:configuredBy <https://comcomponent.com/knowledge/task-logon-type/> .

<https://comcomponent.com/knowledge/task-logon-type/> a skos:Concept ;
    skos:prefLabel "ログオン種別(LogonType)"@ja ;
    skos:definition "タスクの実行アカウントをどう認証するかを決める内部区分。対話トークン(InteractiveToken)・パスワードを保存するPassword・パスワードを保存しないS4Uのいずれかを取り、S4Uはネットワーク上のリソースと暗号化ファイル(EFS)へのアクセスができない。"@ja ;
    skos:altLabel "LogonType" ;
    skos:altLabel "InteractiveToken" ;
    skos:altLabel "Password" ;
    skos:altLabel "S4U" .

<https://comcomponent.com/knowledge/iis-apppool/> a skos:Concept ;
    skos:prefLabel "IISアプリケーションプール"@ja ;
    skos:definition "IIS上のWebアプリの実行単位。プールのIDというアカウントで無人実行される。"@ja ;
    skos:altLabel "アプリプールID"@ja ;
    ks:configuredBy <https://comcomponent.com/knowledge/iis-load-user-profile/> .

<https://comcomponent.com/knowledge/iis-load-user-profile/> a skos:Concept ;
    skos:prefLabel "loadUserProfile設定"@ja ;
    skos:definition "IISアプリケーションプールのワーカープロセスがユーザープロファイルを読み込むかどうかを制御するprocessModelの属性。"@ja ;
    skos:altLabel "Load User Profile" .

<https://comcomponent.com/knowledge/s4u-logon/> a skos:Concept ;
    skos:prefLabel "S4Uログオン"@ja ;
    skos:definition "パスワードを保存せずにユーザーとしてタスクを実行するログオン方式。タスクスケジューラの「パスワードを保存しない」構成で使われ、ネットワークにも暗号化ファイル(EFS)にもアクセスできない。"@ja ;
    skos:altLabel "S4U" ;
    skos:altLabel "Service for User" ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/efs-encryption/> ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/credential-manager/> .

<https://comcomponent.com/knowledge/efs-encryption/> a skos:Concept ;
    skos:prefLabel "NTFS暗号化(EFS)ファイル"@ja ;
    skos:definition "EFS(Encrypting File System)で暗号化されたファイル。NTFS圧縮と同様、アクセスが同期処理に変換されるため非同期発行でも同期的に完了する。"@ja ;
    skos:altLabel "EFS" ;
    skos:altLabel "Encrypting File System" .

<https://comcomponent.com/knowledge/admin-password-reset/> a skos:Concept ;
    skos:prefLabel "管理者によるパスワードのリセット"@ja ;
    skos:definition "管理者がユーザーのWindowsパスワードをリセットする操作。DPAPIの保護に使われる鍵材料への紐付けが外れ、保護済みデータへアクセスできなくなることがある。"@ja ;
    skos:altLabel "パスワードリセット"@ja .

<https://comcomponent.com/knowledge/aspnet-core-data-protection/> a skos:Concept ;
    skos:prefLabel "ASP.NET Core Data Protection"@ja ;
    skos:definition "Cookie認証などの保護に使うASP.NET Coreのデータ保護基盤。実行環境に応じて鍵リングの保存先を自動選択し、Windowsでユーザープロファイルが使える場合はDPAPIで暗号化する。"@ja ;
    skos:altLabel "Data Protection(ASP.NET Core)" .

<https://comcomponent.com/knowledge/programdata-storage/> a skos:Concept ;
    skos:prefLabel "%ProgramData%配下の保存先"@ja ;
    skos:definition "管理者が1台につき1つ設定し、全ユーザーで共有するマシン単位の設定を置くフォルダー。"@ja ;
    skos:altLabel "Environment.SpecialFolder.CommonApplicationData" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-service/> .

<https://comcomponent.com/knowledge/localmachine-store/> a skos:Concept ;
    skos:prefLabel "コンピューターの証明書ストア"@ja ;
    skos:definition "PCに1つで、全ユーザーとサービスに共通の証明書ストア。"@ja ;
    skos:altLabel "LocalMachine" ;
    skos:altLabel "ローカルコンピューターの証明書ストア"@ja ;
    skos:broader <https://comcomponent.com/knowledge/certificate-store/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-service/> .

<https://comcomponent.com/knowledge/mapped-network-drive/> a skos:Concept ;
    skos:prefLabel "ネットワークドライブ(マップされたドライブ文字)"@ja ;
    skos:definition "UNCパスの共有フォルダーに割り当てたドライブ文字(Z:など)で、実体はログオンセッション固有のシンボリックリンクオブジェクト(DosDevices)である。"@ja ;
    skos:altLabel "ドライブ文字"@ja ;
    skos:altLabel "リダイレクトされたドライブ"@ja ;
    ks:storedIn <https://comcomponent.com/knowledge/logon-session/> .

<https://comcomponent.com/knowledge/logon-session/> a skos:Concept ;
    skos:prefLabel "ログオンセッション"@ja ;
    skos:definition "ユーザーのログオンやサービスの起動のたびにOSが作る実行の文脈で、ドライブ文字のマップはログオンSIDに基づきこの単位で管理される。"@ja .

<https://comcomponent.com/knowledge/uac-elevation/> a skos:Concept ;
    skos:prefLabel "UAC昇格(管理者として実行)"@ja ;
    skos:definition "UAC有効な管理者ユーザーのログオン時に、権限を制限した通常トークンと完全な管理者トークンという、リンクされた2つのログオンセッションが作られる仕組み。"@ja ;
    skos:altLabel "UAC elevation" ;
    skos:altLabel "リンクされたログオンセッション"@ja .

<https://comcomponent.com/knowledge/whoami/> a skos:Concept ;
    skos:prefLabel "whoamiコマンド"@ja ;
    skos:definition "現在のプロセスの実行ユーザー名・SID・グループ・特権を表示するWindowsのコマンド。/userでユーザー名とSID、/allで全情報を表示する。"@ja ;
    skos:altLabel "whoami" .

<https://comcomponent.com/knowledge/process-explorer/> a skos:Concept ;
    skos:prefLabel "Process Explorer"@ja ;
    skos:definition "プロセスに読み込まれているDLLだけでなく、ハンドル・スレッドスタック・GDI/USERオブジェクト数なども確認できるSysinternalsのプロセス監視ツール。管理者として実行すると他ユーザーやサービスのプロセスも参照できる。"@ja .

<https://comcomponent.com/knowledge/procmon/> a skos:Concept ;
    skos:prefLabel "Process Monitor(procmon.exe)"@ja ;
    skos:definition "ファイルI/O・レジストリ・プロセス/スレッド活動をリアルタイムに監視できるSysinternalsのツール。Advanced Outputを有効にすると、IRPやファストI/Oのカーネル側の語彙で操作を表示する。"@ja ;
    skos:altLabel "Procmon" ;
    skos:altLabel "Process Monitor" .

<https://comcomponent.com/knowledge/appdata-locallow/> a skos:Concept ;
    skos:prefLabel "AppData\\LocalLow"@ja ;
    skos:definition "低整合性レベルで動作するプロセスが書き込める数少ない場所として用意された、プロファイル内のフォルダー。"@ja ;
    skos:altLabel "LocalLow" ;
    ks:storedIn <https://comcomponent.com/knowledge/windows-user-profile/> .

<https://comcomponent.com/knowledge/hkcu-classes/> a skos:Concept ;
    skos:prefLabel "HKEY_CURRENT_USER\\Software\\Classes"@ja ;
    skos:definition "COMがコンピューター全体の情報を見る前に先に参照する、そのユーザーだけに見えるCOMクラス登録の場所。"@ja ;
    skos:altLabel "HKCU\\Software\\Classes" ;
    ks:storedIn <https://comcomponent.com/knowledge/local-appdata/> .

<https://comcomponent.com/knowledge/impersonation/> a skos:Concept ;
    skos:prefLabel "偽装(impersonation)"@ja ;
    skos:definition "サービスが、接続してきたクライアントユーザーの権限を借りてリモート資源にアクセスする仕組み。"@ja ;
    skos:altLabel "クライアント偽装"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-service/> .

<https://comcomponent.com/knowledge/localservice-account/> a skos:Concept ;
    skos:prefLabel "LocalServiceアカウント"@ja ;
    skos:definition "サービスの実行アカウントの1つ。ネットワーク上では匿名資格情報として認証されるため、共有フォルダーへのアクセスには使えない。"@ja ;
    skos:altLabel "LocalService" ;
    ks:uses <https://comcomponent.com/knowledge/windows-user-profile/> .

<https://comcomponent.com/knowledge/localsystem-account/> a skos:Concept ;
    skos:prefLabel "LocalSystemアカウント"@ja ;
    skos:definition "サービスの実行アカウントの1つ。ローカルでは広範な特権を持つ一方、ネットワーク上ではコンピューターの資格情報としてリモートサーバーに認証される。"@ja ;
    skos:altLabel "LocalSystem" ;
    ks:verifiedBy <https://comcomponent.com/knowledge/psexec/> .

<https://comcomponent.com/knowledge/psexec/> a skos:Concept ;
    skos:prefLabel "PsExec"@ja ;
    skos:definition "リモートまたはローカルで任意のアカウント(SYSTEMを含む)としてプロセスを起動できるSysinternalsのツール。psexec -s -i cmdでSYSTEMのコンテキストの対話シェルを開ける。"@ja ;
    skos:altLabel "psexec.exe" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-user-profile/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/security-identifier/> ;
    schema:description "ユーザープロファイルは実行ユーザーのSIDに紐づいて作られ(ProfileListはSIDをキーに持つ)、SIDが異なれば初期状態から始まる別のプロファイルになる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/shell/about-user-profiles>, <https://learn.microsoft.com/troubleshoot/windows-client/user-profiles-and-logon/renaming-user-account-not-change-profile-path> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ntuser-dat/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/windows-user-profile/> ;
    schema:description "ユーザーレジストリハイブの実体NTUSER.DATはユーザープロファイルに含まれ、ログオン時にロードされる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/shell/about-user-profiles> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hkcu/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/ntuser-dat/> ;
    schema:description "対話ログオンしたユーザーのプロセスでは、HKEY_CURRENT_USERの中身(HKCU\\Software\\Classes配下を除く)はログオン時にロードされたそのユーザーのNTUSER.DATがマップされたものになる。Classes配下は別ファイルUsrClass.datが実体で、LocalSystemのように既定ユーザーへ関連付くコンテキストでもこの関係は成り立たない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/shell/about-user-profiles>, <https://learn.microsoft.com/troubleshoot/windows-server/user-profiles-and-logon/desktop-location-unavailable> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hkcu/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "サービスからHKEY_CURRENT_USERへアクセスすべきではない。LocalSystemのプロセスではHKCUが既定ユーザーに関連付けられ、ユーザーの設定が必要な場合はそのユーザーを偽装したうえでRegOpenCurrentUserを使う。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/services-and-the-registry>, <https://learn.microsoft.com/windows/win32/services/localsystem-account> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/local-appdata/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/windows-user-profile/> ;
    schema:description "%LOCALAPPDATA%はユーザーごとの既知フォルダーで、実行ユーザーのプロファイル配下に解決される。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/shell/knownfolderid> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/roaming-appdata/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/windows-user-profile/> ;
    schema:description "%APPDATA%(Roaming)はユーザーごとの既知フォルダーで、既定では実行ユーザーのプロファイル配下に解決される。移動プロファイルやフォルダーリダイレクトを構成したドメイン環境では別の場所になり得る。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/shell/knownfolderid> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dpapi/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dpapi-master-key/> ;
    schema:description "DPAPIはOSが管理するマスターキーで暗号化・復号を行い、アプリケーション側は鍵を保持・管理しない。"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/ms995355(v=msdn.10)> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dpapi-master-key/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/windows-user-profile/> ;
    schema:description "CurrentUserスコープで使われる、ランダムに生成されたユーザーのマスターキーは、ログオン資格情報から派生した鍵で暗号化されてユーザープロファイル配下に保存される。LocalMachineスコープのマシン共通の鍵はこの対象外。"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/ms995355(v=msdn.10)> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dpapi-currentuser-scope/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/dpapi-decryption-failure/> ;
    schema:description "CurrentUserスコープで保護したデータを、暗号化したユーザーと異なる実行ユーザー(サービス化・タスク化後のアカウントなど)から復号しようとすると失敗する。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/api/system.security.cryptography.protecteddata>, <https://learn.microsoft.com/windows/win32/api/dpapi/nf-dpapi-cryptprotectdata> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dpapi-localmachine-scope/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/dpapi-decryption-failure/> ;
    schema:description "サービスと対話ユーザーの両方から読む秘密をLocalMachineスコープで保護すれば、実行ユーザーの違いによる復号失敗を避けられる。同じマシンの任意のプロセスが復号できるため、読者はファイルACLで絞る。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/api/system.security.cryptography.protecteddata> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/credential-manager/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dpapi/> ;
    schema:description "資格情報マネージャーに保存された資格情報はディスク上に置かれDPAPIで保護されるため、復号して使えるのは保存したユーザーの文脈に限られる。"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh994565(v=ws.11)> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/currentuser-store/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/hkcu/> ;
    schema:description "ユーザーの証明書ストアの実体はレジストリのHKEY_CURRENT_USER\\Software\\Microsoft\\SystemCertificates配下にあり、ユーザーごとに分かれる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/seccrypto/system-store-locations> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/chromium-browser-profile/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/local-appdata/> ;
    schema:description "ChromeのUser Dataディレクトリは既定で%LOCALAPPDATA%配下にあり、履歴・Cookie・保存パスワードなどのプロファイルはそこに置かれる。--user-data-dirや自動化ツールの永続ディレクトリ指定で別の場所を使う場合はこの限りではない。"@ja ;
    ks:evidence <https://chromium.googlesource.com/chromium/src/+/HEAD/docs/user_data_dir.md> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/chromium-browser-profile/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dpapi/> ;
    schema:description "ChromeはWindowsでCookie等の暗号鍵の保護にDPAPIを使っており(現在はアプリ束縛暗号化を併用)、プロファイルを別ユーザー・別マシンへコピーしても鍵を復号できない。"@ja ;
    ks:evidence <https://security.googleblog.com/2024/07/improving-security-of-chrome-cookies-on.html> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/task-logon-type/> ;
    schema:description "タスクの実行はInteractiveToken・Password・S4Uのログオン種別で構成し、S4Uではパスワードが保存されずネットワークにも暗号化ファイルにもアクセスできない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/taskschd/taskschedulerschema-logontype-simpletype> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/iis-apppool/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/iis-load-user-profile/> ;
    schema:description "アプリケーションプールのワーカープロセスがユーザープロファイルを読み込むかはprocessModelのloadUserProfile属性で構成する。IISは既定ではプロファイルを読み込まない。"@ja ;
    ks:evidence <https://learn.microsoft.com/iis/configuration/system.applicationhost/applicationpools/add/processmodel>, <https://learn.microsoft.com/iis/manage/configuring-security/application-pool-identities> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/s4u-logon/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/efs-encryption/> ;
    schema:description "S4Uログオンではパスワードが保存されないため、暗号化ファイル(EFS)にもネットワークリソースにもアクセスできない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/taskschd/taskschedulerschema-logontype-simpletype> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/s4u-logon/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/credential-manager/> ;
    schema:description "S4Uログオンはネットワーク資格情報を持たないため、実行アカウントの金庫に資格情報を投入しても使えない。使うにはパスワードを保存する構成などへの切り替えが必要になる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/taskschd/taskschedulerschema-logontype-simpletype> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/admin-password-reset/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/dpapi-decryption-failure/> ;
    schema:description "ローカルアカウントのパスワードを管理者がリセットすると、マスターキーを守る鍵の材料が失われ、過去にCurrentUserスコープで保護した暗号文が復号できなくなることがある(ユーザー自身のパスワード変更操作では復号能力を引き継ぐ)。"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/ms995355(v=msdn.10)> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/aspnet-core-data-protection/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dpapi/> ;
    schema:description "ユーザープロファイルが使える環境では、Data Protectionの鍵リングはDPAPIで暗号化される。IISホストでプロファイルが無い場合はワーカープロセスアカウントにACLされたHKLMレジストリへフォールバックする。"@ja ;
    ks:evidence <https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/default-settings> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/aspnet-core-data-protection/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/local-appdata/> ;
    schema:description "ユーザープロファイルが使える環境では、鍵リングは%LOCALAPPDATA%のASP.NET/DataProtection-Keysに保存される。どの条件にも当てはまらない環境では一時キーになり、再起動で保護済みデータが無効になる。"@ja ;
    ks:evidence <https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/default-settings> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/programdata-storage/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "マシン上の全ユーザー・サービスで共有するデータは、実行ユーザーのプロファイルに解決されるAppDataではなくProgramData配下に置き、ACLを設計するのが本記事の推奨。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/shell/knownfolderid> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/localmachine-store/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "サービスから使う証明書はコンピューターの証明書ストアに入れ、秘密鍵のACLでサービスアカウントに読み取りを許可するのが本記事の推奨。CurrentUserストアの秘密鍵にはサービスの実行ユーザーから届かない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-hardware/drivers/install/local-machine-and-current-user-certificate-stores> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/mapped-network-drive/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/logon-session/> ;
    schema:description "ネットワークドライブの割り当てはログオンセッション単位で保持される。UAC有効な管理者は標準トークンと昇格トークンで別のログオンセッションを持つため、片方で割り当てたドライブ文字はもう片方から見えない。"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/windows-client/networking/mapped-drives-not-available-from-elevated-command> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/mapped-network-drive/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/uac-elevation/> ;
    schema:description "標準トークンのセッションで割り当てたドライブ文字は、昇格したプロセスのログオンセッションからは既定で参照できない。"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/windows-client/networking/mapped-drives-not-available-from-elevated-command> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/security-identifier/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/whoami/> ;
    schema:description "実行ユーザーのユーザー名とSIDはwhoami /userで、グループ・特権まで含めた全体はwhoami /allで確認できる。ユーザー境界トラブルの調査はここから始める。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/administration/windows-commands/whoami> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/security-identifier/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/process-explorer/> ;
    schema:description "プロセスのトークンがどのユーザー・どのセッションのものかは、Process Explorerで確認できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/process-explorer> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-user-profile/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/procmon/> ;
    schema:description "アプリが実際にどのプロファイル配下のパス・レジストリキーを読んだかはProcess Monitorで確認できる。PATH NOT FOUNDの行に現れる期待と違うプロファイルのパスが、ユーザー境界を踏んでいる手がかりになる。"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/procmon> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/appdata-locallow/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/windows-user-profile/> ;
    schema:description "AppData\\LocalLowもユーザープロファイル配下の既知フォルダーで、低い完全性レベルで動くプロセス用の書き込み先として区分されている。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/shell/knownfolderid> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hkcu-classes/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/local-appdata/> ;
    schema:description "HKCU\\Software\\Classesはユーザーごとの別ハイブで、実体ファイルUsrClass.datは%LOCALAPPDATA%のMicrosoft/Windows配下に置かれる。NTUSER.DATとは別に管理される。"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/windows-server/user-profiles-and-logon/desktop-location-unavailable> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/impersonation/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "サービスがユーザーの設定を読む必要がある場合は、HKCUを直接開くのではなく、そのユーザーを偽装したうえでRegOpenCurrentUserを使うのが推奨される。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/services-and-the-registry> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/localservice-account/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/windows-user-profile/> ;
    schema:description "LocalServiceアカウントはC:\\Windows\\ServiceProfiles配下に自分のプロファイルを持ち、HKEY_USERSに自分のサブキーを持つ(NetworkServiceも同様)。対話ユーザーのプロファイルとは別物になる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/localservice-account> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/localsystem-account/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/psexec/> ;
    schema:description "psexec -s -i cmdでSYSTEM(LocalSystem)のコンテキストの対話シェルを開き、SYSTEM側の世界から同じ操作を再現してユーザー境界の問題を確認できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/psexec> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .
