@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/network-share-unc-path-pitfalls/#article>
    schema:about <https://comcomponent.com/knowledge/unc-path/>, <https://comcomponent.com/knowledge/logon-session/>, <https://comcomponent.com/knowledge/mapped-network-drive/> ;
    schema:mentions <https://comcomponent.com/knowledge/windows-service/>, <https://comcomponent.com/knowledge/active-directory/>, <https://comcomponent.com/knowledge/domain-account/>, <https://comcomponent.com/knowledge/kerberos/>, <https://comcomponent.com/knowledge/spn/>, <https://comcomponent.com/knowledge/domain-controller/>, <https://comcomponent.com/knowledge/network-redirector/>, <https://comcomponent.com/knowledge/smb-445/>, <https://comcomponent.com/knowledge/uac-elevation/>, <https://comcomponent.com/knowledge/enablelinkedconnections/>, <https://comcomponent.com/knowledge/localsystem-account/>, <https://comcomponent.com/knowledge/networkservice-account/>, <https://comcomponent.com/knowledge/localservice-account/>, <https://comcomponent.com/knowledge/gmsa/>, <https://comcomponent.com/knowledge/error-1219/>, <https://comcomponent.com/knowledge/net-use-command/>, <https://comcomponent.com/knowledge/wnetaddconnection2/>, <https://comcomponent.com/knowledge/credential-manager/>, <https://comcomponent.com/knowledge/impersonation/>, <https://comcomponent.com/knowledge/file-exists-method/>, <https://comcomponent.com/knowledge/smb-autodisconnect/>, <https://comcomponent.com/knowledge/polling-full-scan/>, <https://comcomponent.com/knowledge/filesystemwatcher/>, <https://comcomponent.com/knowledge/temp-then-rename-publish/>, <https://comcomponent.com/knowledge/idempotent-processing/>, <https://comcomponent.com/knowledge/smb-share-file-handoff/>, <https://comcomponent.com/knowledge/partial-write-read/> .

<https://comcomponent.com/knowledge/unc-path/> a skos:Concept ;
    skos:prefLabel "UNCパス"@ja ;
    skos:definition "\\\\サーバー名\\共有名\\...の形式で共有フォルダーの実体を指す、Windowsのユニバーサル命名規則によるパス表記。"@ja ;
    skos:altLabel "Universal Naming Convention" ;
    skos:altLabel "\\\\サーバー名\\共有名"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-service/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/uac-elevation/> ;
    ks:requires <https://comcomponent.com/knowledge/network-redirector/> .

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

<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/> ;
    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 ;
    ks:requires <https://comcomponent.com/knowledge/logon-session/> .

<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/enablelinkedconnections/> a skos:Concept ;
    skos:prefLabel "EnableLinkedConnectionsレジストリ値"@ja ;
    skos:definition "UACのリンクされた2つのログオンセッション双方にドライブマップのシンボリックリンクを書き込ませるレジストリ回避策。Microsoftはシステムを安全でなくする可能性があるとして非サポートを明記している。"@ja ;
    skos:altLabel "EnableLinkedConnections" ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/uac-elevation/> .

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

<https://comcomponent.com/knowledge/active-directory/> a skos:Concept ;
    skos:prefLabel "Active Directory(AD DS)"@ja ;
    skos:definition "オンプレミスのWindowsドメインを構成するディレクトリサービス。"@ja ;
    skos:altLabel "AD DS" ;
    skos:altLabel "Active Directory Domain Services" ;
    skos:altLabel "オンプレAD"@ja .

<https://comcomponent.com/knowledge/networkservice-account/> a skos:Concept ;
    skos:prefLabel "NetworkServiceアカウント"@ja ;
    skos:definition "サービスの実行アカウントの1つ。ローカルの特権は最小限だが、ネットワーク上ではLocalSystemと同じくコンピューターの資格情報として認証される。"@ja ;
    skos:altLabel "NetworkService" .

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

<https://comcomponent.com/knowledge/gmsa/> a skos:Concept ;
    skos:prefLabel "gMSA(group Managed Service Account)"@ja ;
    skos:definition "パスワードの自動生成・自動更新とSPN管理の簡素化を提供するActive Directoryドメインのサービスアカウント。ドメインコントローラー側のKDSルートキーの準備を前提とする。"@ja ;
    skos:altLabel "グループ管理サービスアカウント"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-service/> ;
    ks:requires <https://comcomponent.com/knowledge/active-directory/> ;
    ks:requires <https://comcomponent.com/knowledge/domain-controller/> .

<https://comcomponent.com/knowledge/domain-controller/> a skos:Concept ;
    skos:prefLabel "ドメインコントローラー"@ja ;
    skos:definition "Active Directoryのディレクトリサービスを提供し、KDCの機能やNTLMのパススルー認証の相手を担うサーバー。"@ja ;
    skos:altLabel "DC" .

<https://comcomponent.com/knowledge/domain-account/> a skos:Concept ;
    skos:prefLabel "ドメインアカウント"@ja ;
    skos:definition "Active Directoryドメインに属し、ドメインコントローラーで認証されるアカウント。NTLMでの認証はドメインコントローラーへのパススルー認証を伴う。"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-service/> .

<https://comcomponent.com/knowledge/kerberos/> a skos:Concept ;
    skos:prefLabel "Kerberos"@ja ;
    skos:definition "チケットによる一度だけの本人確認と相互認証を提供する認証プロトコル。Windows ServerはKerberos version 5と、公開鍵認証・認可データの転送・委任のための拡張を実装する。"@ja ;
    skos:altLabel "Kerberos version 5" ;
    skos:altLabel "Kerberos認証"@ja ;
    ks:requires <https://comcomponent.com/knowledge/spn/> .

<https://comcomponent.com/knowledge/spn/> a skos:Concept ;
    skos:prefLabel "SPN"@ja ;
    skos:definition "KDCが接続先のサービスアカウントを特定するために使う名前。登録されていなければ、KDCはそのサービスのサービスチケットを発行できない。"@ja ;
    skos:altLabel "サービスプリンシパル名"@ja ;
    skos:altLabel "Service Principal Name" .

<https://comcomponent.com/knowledge/network-redirector/> a skos:Concept ;
    skos:prefLabel "ネットワークリダイレクター"@ja ;
    skos:definition "\\Device\\Mupという単一のデバイスオブジェクトとして名前空間に存在し、UNCパス(\\\\server\\share)の要求をネットワーク越しに運ぶコンポーネント。"@ja ;
    skos:altLabel "\\Device\\Mup" ;
    skos:altLabel "SMBクライアント"@ja ;
    skos:broader <https://comcomponent.com/knowledge/device-object/> .

<https://comcomponent.com/knowledge/smb-445/> a skos:Concept ;
    skos:prefLabel "SMB(TCP 445)"@ja ;
    skos:definition "ファイル共有とリモート名前付きパイプが使うプロトコルとポート。"@ja ;
    skos:altLabel "ファイル共有ポート"@ja .

<https://comcomponent.com/knowledge/net-use-command/> a skos:Concept ;
    skos:prefLabel "net use コマンド"@ja ;
    skos:definition "指定したユーザー名でUNCパスの共有資源への接続を、実行したログオンセッションに確立するコマンド。サービス内での実行は資格情報の漏えいや干渉の観点から非推奨とされる。"@ja ;
    skos:altLabel "net use" ;
    ks:requires <https://comcomponent.com/knowledge/unc-path/> ;
    ks:mayCause <https://comcomponent.com/knowledge/error-1219/> .

<https://comcomponent.com/knowledge/error-1219/> a skos:Concept ;
    skos:prefLabel "エラー1219(ERROR_SESSION_CREDENTIAL_CONFLICT)"@ja ;
    skos:definition "同じログオンセッションから同じサーバーへ異なるユーザー名で複数の接続を張ろうとしたときに返る、by design(仕様)のエラー。"@ja ;
    skos:altLabel "ERROR_SESSION_CREDENTIAL_CONFLICT" .

<https://comcomponent.com/knowledge/wnetaddconnection2/> a skos:Concept ;
    skos:prefLabel "WNetAddConnection2"@ja ;
    skos:definition "クライアントの資格情報を指定してネットワーク資源への接続を確立できるWin32 API。ドライブ文字を割り当てないdeviceless接続にすれば、UNCパスのままアクセスできる。"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-service/> .

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

<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/filesystemwatcher/> a skos:Concept ;
    skos:prefLabel "FileSystemWatcher"@ja ;
    skos:definition ".NETが提供する、ファイル・ディレクトリの作成・変更・削除・名前変更をイベントで通知するAPI。ディレクトリ通知はアプリが動いている間しか受け取れず、内部バッファのoverflowで個別通知を取りこぼすことがある。"@ja ;
    skos:altLabel "System.IO.FileSystemWatcher" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/smb-share-file-handoff/> .

<https://comcomponent.com/knowledge/smb-share-file-handoff/> a skos:Concept ;
    skos:prefLabel "共有フォルダ(SMB)越しのファイル連携"@ja ;
    skos:definition "SMB共有フォルダを介してtemp->rename公開やclaimを行う運用。同一共有内では原子性が保たれる一方、ボリュームをまたぐ移動・他プロセスによる開放中の失敗・タイムスタンプの不確実性・変更通知の取りこぼしが追加のリスクになる。"@ja ;
    skos:altLabel "SMB越しの連携"@ja ;
    ks:requires <https://comcomponent.com/knowledge/unc-path/> .

<https://comcomponent.com/knowledge/polling-full-scan/> a skos:Concept ;
    skos:prefLabel "定期フルスキャン(ポーリング)"@ja ;
    skos:definition "変更通知に頼らず、対象フォルダーを一定間隔ですべて確認して変化を検出する監視方式。"@ja ;
    skos:altLabel "ポーリング"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/filesystemwatcher/> .

<https://comcomponent.com/knowledge/temp-then-rename-publish/> a skos:Concept ;
    skos:prefLabel "temp -> close -> rename/replaceでの公開"@ja ;
    skos:definition "生成中のファイルをtemp名に閉じ込め、closeしたあとで同一ディレクトリ・同一ボリューム上のfinal名へrename/replaceする、書き込み途中のファイルを読ませないための公開パターン。"@ja ;
    skos:altLabel "temp->rename公開パターン"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/smb-share-file-handoff/> ;
    ks:prevents <https://comcomponent.com/knowledge/partial-write-read/> .

<https://comcomponent.com/knowledge/idempotent-processing/> a skos:Concept ;
    skos:prefLabel "idempotency(冪等性)を前提にした処理"@ja ;
    skos:definition "同じ入力をもう一度処理しても結果が変わらない性質を前提に、排他が破れた場合の二重実行を処理済み台帳への記録で吸収する設計。"@ja ;
    skos:altLabel "冪等な処理設計"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/smb-share-file-handoff/> .

<https://comcomponent.com/knowledge/partial-write-read/> a skos:Concept ;
    skos:prefLabel "書き込み途中ファイルの読み込み事故"@ja ;
    skos:definition "受信側が、送信側がまだ書き込み中のファイルを最終ファイル名として検知し読み始めてしまうことで、JSONの閉じ括弧欠落やCSVの行数不足などの不完全なデータを処理してしまう事故。"@ja ;
    skos:altLabel "途中ファイルの誤読"@ja .

<https://comcomponent.com/knowledge/file-exists-method/> a skos:Concept ;
    skos:prefLabel "File.Exists"@ja ;
    skos:definition ".NETでファイルの存在を確認するAPI。パス不正・権限不足・ディスク障害など理由を問わず例外を出さずfalseを返すため、共有フォルダー相手では「ファイルが無い」と「サーバーに届かない」を区別できない。"@ja ;
    skos:altLabel "File.Exists(String)" ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/unc-path/> .

<https://comcomponent.com/knowledge/smb-autodisconnect/> a skos:Concept ;
    skos:prefLabel "SMBのアイドル接続自動切断(autodisconnect)"@ja ;
    skos:definition "サーバー資源の浪費を防ぐため、アイドル状態のSMB接続を既定で15分後に切断する仕組み。クライアント側のKeepConn(既定10分)とサーバー側のautodisconnectのうち短い方のタイマーで切断される。"@ja ;
    skos:altLabel "autodisconnect" ;
    skos:altLabel "KeepConn" .

[] 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 "ドライブ文字はシステムグローバルではなく、ログオンセッションごとにAからZの一式が割り当てられる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/services-and-redirected-drives> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/unc-path/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "サービスや異なるセキュリティコンテキストで動くプロセスがリモート資源にアクセスするときは、UNCパスを使うことが公式に推奨されている"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/services-and-redirected-drives> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/mapped-network-drive/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "サービス内でnet useやWNet系APIを使い実行時にドライブ文字をマップする実装は、資格情報の漏えいやサービス間の干渉の観点から推奨されない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/services-and-redirected-drives> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-service/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/logon-session/> ;
    schema:description "サービスをユーザーアカウントで構成しても、システムはサービス用に新しいログオンセッションを作るため、デスクトップ側のドライブマップは引き継がれない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/services-and-redirected-drives> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/uac-elevation/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/mapped-network-drive/> ;
    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-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/enablelinkedconnections/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/uac-elevation/> ;
    schema:description "EnableLinkedConnectionsは昇格時と通常時の両方のログオンセッションにドライブマップを共有させる回避策だが、Microsoftは非サポートを明記している"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/windows-client/networking/cannot-redirect-folder-use-drive-map-letter> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/unc-path/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/uac-elevation/> ;
    schema:description "昇格プロセスでドライブマップが見えない問題は、非サポートのレジストリ回避策ではなくアプリのパスをUNCで持つことで解決するのが公式の推奨"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/windows-client/networking/cannot-redirect-folder-use-drive-map-letter> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/localsystem-account/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/active-directory/> ;
    schema:description "LocalSystemはネットワーク上でコンピューターの資格情報として認証されるため、ドメイン環境ではコンピューターアカウントへの共有側の権限付与が要る"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/localsystem-account> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/networkservice-account/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/active-directory/> ;
    schema:description "NetworkServiceもLocalSystemと同じくコンピューターの資格情報でネットワーク認証されるため、共有側の権限付与にはドメイン環境が前提になる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/networkservice-account> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/localservice-account/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/unc-path/> ;
    schema:description "LocalServiceはネットワーク上で匿名資格情報になるため、UNCパスの共有フォルダーへのアクセスには使えない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/localservice-account> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gmsa/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "ドメイン環境で長期運用するサービスの実行アカウントには、パスワードをOSが自動管理するgMSAが推奨される"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/identity/ad-ds/manage/group-managed-service-accounts/group-managed-service-accounts/group-managed-service-accounts-overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gmsa/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/active-directory/> ;
    schema:description "gMSAはActive Directoryドメインのアカウントであり、ワークグループ環境では選択肢にならない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/identity/ad-ds/manage/group-managed-service-accounts/group-managed-service-accounts/group-managed-service-accounts-overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gmsa/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/domain-controller/> ;
    schema:description "gMSAのパスワード生成には、ドメインコントローラー側のKDS(Key Distribution Service)ルートキーが必要"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/identity/ad-ds/manage/group-managed-service-accounts/group-managed-service-accounts/create-the-key-distribution-services-kds-root-key> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/domain-account/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "gMSAの前提が整わない場合、実務ではドメインアカウントを実行アカウントにするのが標準"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/ad/about-service-logon-accounts> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/kerberos/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/spn/> ;
    schema:description "Kerberos認証の環境でSMBクライアントが接続先のサービスチケットを要求するには、接続先ホスト名に対応するSPNが登録されている必要がある"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/windows-server/networking/dns-cname-alias-cannot-access-smb-file-server-share> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/kerberos/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/domain-controller/> ;
    schema:description "Active Directory環境のKerberos認証は、ドメインコントローラー上で動くKDCがチケットを発行することを前提とする。MITやHeimdalのようなAD以外のレルムでは、ドメインコントローラーを介さずKDCがチケットを発行する"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/windows-server/networking/dns-cname-alias-cannot-access-smb-file-server-share> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/unc-path/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/network-redirector/> ;
    schema:description "UNCパス(\\\\server\\share)への要求は、名前空間上の\\Device\\Mupというネットワークリダイレクターのデバイスオブジェクトを経由して運ばれる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/services-and-redirected-drives> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/network-redirector/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/smb-445/> ;
    schema:description "SMBのリダイレクター(LanmanWorkstation)が運ぶファイル共有の要求は、SMB(TCP 445)のプロトコルとポートを使う。MUPはWebDAVリダイレクターなど別のプロバイダーにもUNC要求を振り分けるため、UNCすべてがSMBを通るわけではない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/services-and-redirected-drives> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/net-use-command/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/unc-path/> ;
    schema:description "net useはUNCパスで指定した共有資源への接続を、実行したログオンセッションに確立する"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/gg651155%28v%3Dws.11%29> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/net-use-command/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/error-1219/> ;
    schema:description "同じログオンセッションから同じサーバーへ、net use等で異なるユーザー名の接続を2つ目以降張ろうとすると、エラー1219(ERROR_SESSION_CREDENTIAL_CONFLICT)で失敗する"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/windows-server/networking/cannot-connect-to-network-share> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wnetaddconnection2/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "サーバープロセスがクライアントの資格情報でネットワーク資源に接続する戦略として、WNetAddConnection2による明示的な接続確立が公式ドキュメントに挙げられている"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/secauthz/client-access-to-network-resources> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/credential-manager/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/unc-path/> ;
    schema:description "共有側にドメインアカウントの権限を割り当てられない場合、cmdkeyで保存した資格情報を使ってUNCパスへ認証する手段がある"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/administration/windows-commands/cmdkey> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/impersonation/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "クライアントユーザーの権限でファイルサーバーへアクセスしたい場合、資格情報を抱え込むより偽装(impersonation)を使うことが公式に推奨されている"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/secauthz/client-access-to-network-resources> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/filesystemwatcher/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/smb-share-file-handoff/> ;
    schema:description "FileSystemWatcherはネットワークドライブやリモートコンピューター上のファイル監視をサポートし、共有フォルダー越しの連携で新着ファイルの検知に使われる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/polling-full-scan/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/filesystemwatcher/> ;
    schema:description "リモート共有のFileSystemWatcherは通知の取りこぼしがあるため、起動時・エラー時・定期のフルスキャン(ポーリング)を併用するのが実務の定石"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/temp-then-rename-publish/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/smb-share-file-handoff/> ;
    schema:description "共有フォルダー越しのファイル連携では、close後のrenameで完成を公開するtemp->renameパターンが推奨される"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/fileio/moving-and-replacing-files> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/idempotent-processing/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/smb-share-file-handoff/> ;
    schema:description "共有は遅い・切れる・いないことがあるため、再処理しても壊れないidempotencyな設計が最後の砦になる"@ja ;
    ks:evidence <https://www.rfc-editor.org/rfc/rfc9110.html> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/temp-then-rename-publish/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/partial-write-read/> ;
    schema:description "close後のrenameでfinal名を公開するパターンにしておけば、受信側が書き込み途中のファイルを読んでしまう事故を防げる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/fileio/moving-and-replacing-files> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/file-exists-method/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/unc-path/> ;
    schema:description "File.Existsは権限不足やネットワーク到達不能時にも例外を出さずfalseを返すため、共有フォルダー相手では「ファイルが無い」と「サーバーに届かない」を区別できず、業務判断の分岐には使わないほうがよい"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/api/system.io.file.exists> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/smb-share-file-handoff/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/unc-path/> ;
    schema:description "共有フォルダー越しのファイル連携は、UNCパスを介した接続を前提とする"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/services-and-redirected-drives> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/smb-share-file-handoff/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/smb-autodisconnect/> ;
    schema:description "共有フォルダーを介した連携は、アイドル状態が続くとサーバー側またはクライアント側のタイマーで接続が自動的に切断される"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/windows-client/networking/mapped-drive-connection-to-network-share-lost> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .
