@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/winget-powershell-pc-kitting/#article>
    schema:about <https://comcomponent.com/knowledge/winget/>, <https://comcomponent.com/knowledge/winget-configuration/>, <https://comcomponent.com/knowledge/idempotency/> ;
    schema:mentions <https://comcomponent.com/knowledge/winget-export-import/>, <https://comcomponent.com/knowledge/powershell-dsc/>, <https://comcomponent.com/knowledge/custom-powershell-kitting/>, <https://comcomponent.com/knowledge/winget-coverage-gap/>, <https://comcomponent.com/knowledge/elevated-phase/>, <https://comcomponent.com/knowledge/user-phase/>, <https://comcomponent.com/knowledge/network-drive-mapping/>, <https://comcomponent.com/knowledge/shared-printer-connection/>, <https://comcomponent.com/knowledge/hklm-run-key/>, <https://comcomponent.com/knowledge/system-context-execution/>, <https://comcomponent.com/knowledge/ms-winget-client-module/>, <https://comcomponent.com/knowledge/scope-machine-option/>, <https://comcomponent.com/knowledge/msi-exit-code/>, <https://comcomponent.com/knowledge/task-scheduler/>, <https://comcomponent.com/knowledge/group-policy/>, <https://comcomponent.com/knowledge/admin-rights/> .

<https://comcomponent.com/knowledge/winget/> a skos:Concept ;
    skos:prefLabel "winget"@ja ;
    skos:definition "Windowsクライアントでの推奨インストール方法として案内される、Microsoft製のパッケージマネージャー。"@ja ;
    ks:implements <https://comcomponent.com/knowledge/winget-export-import/> ;
    ks:implements <https://comcomponent.com/knowledge/winget-configuration/> ;
    ks:uses <https://comcomponent.com/knowledge/scope-machine-option/> .

<https://comcomponent.com/knowledge/winget-configuration/> a skos:Concept ;
    skos:prefLabel "WinGet Configuration"@ja ;
    skos:definition "最終的にあるべき状態をYAMLファイルで宣言し、PowerShell DSCを通じて適用するwingetの仕組み。アプリの導入とWindows・アプリの設定を1ファイルで表現できる。"@ja ;
    skos:altLabel "winget configure" ;
    ks:uses <https://comcomponent.com/knowledge/powershell-dsc/> ;
    ks:implements <https://comcomponent.com/knowledge/idempotency/> .

<https://comcomponent.com/knowledge/idempotency/> a skos:Concept ;
    skos:prefLabel "冪等性"@ja ;
    skos:definition "同じ処理を何度実行しても結果が変わらない性質。キッティングスクリプトでは、現在の状態を確認してから変更することで実現する。"@ja ;
    skos:altLabel "Idempotency" .

<https://comcomponent.com/knowledge/winget-export-import/> a skos:Concept ;
    skos:prefLabel "winget export/import"@ja ;
    skos:definition "導入済みパッケージの一覧をJSONに書き出し(export)、別のPCでその一覧どおりに導入し直す(import)wingetのサブコマンド。設定は対象外で、winget管理下のパッケージ識別子とバージョンだけを扱う。"@ja ;
    skos:altLabel "winget export" ;
    skos:altLabel "winget import" .

<https://comcomponent.com/knowledge/powershell-dsc/> a skos:Concept ;
    skos:prefLabel "PowerShell DSC"@ja ;
    skos:definition "望ましい状態を宣言的に記述し、その状態に収束させるPowerShellの構成管理の仕組み。WinGet Configurationが内部で利用する。"@ja ;
    skos:altLabel "Desired State Configuration" .

<https://comcomponent.com/knowledge/custom-powershell-kitting/> a skos:Concept ;
    skos:prefLabel "自前PowerShellキッティングスクリプト"@ja ;
    skos:definition "wingetがカバーしないフォルダー作成・レジストリ設定・Windowsの機能・社内アプリ・ネットワークドライブ・共有プリンターなどを、状態確認してから変更する形で適用する自作のPowerShellスクリプト群。"@ja ;
    skos:altLabel "補完スクリプト"@ja ;
    ks:implements <https://comcomponent.com/knowledge/idempotency/> ;
    ks:mitigates <https://comcomponent.com/knowledge/winget-coverage-gap/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/msi-exit-code/> ;
    ks:uses <https://comcomponent.com/knowledge/winget/> .

<https://comcomponent.com/knowledge/winget-coverage-gap/> a skos:Concept ;
    skos:prefLabel "wingetがカバーしない領域"@ja ;
    skos:definition "アプリ内の設定、プリンターの追加、ネットワークドライブの割り当て、電源設定、社内標準のレジストリ設定など、winget install/importの対象に含まれない構成項目。"@ja ;
    skos:altLabel "winget非対応領域"@ja .

<https://comcomponent.com/knowledge/elevated-phase/> a skos:Concept ;
    skos:prefLabel "管理者フェーズ(昇格)"@ja ;
    skos:definition "フォルダー作成、HKLMレジストリ設定、Windowsの機能の有効化、wingetパッケージ、社内アプリの導入など、マシン全体に効く設定を端末につき1回、管理者権限で適用する実行フェーズ。"@ja ;
    skos:altLabel "管理者フェーズ"@ja ;
    ks:requires <https://comcomponent.com/knowledge/admin-rights/> ;
    ks:shouldPrecede <https://comcomponent.com/knowledge/user-phase/> .

<https://comcomponent.com/knowledge/admin-rights/> a skos:Concept ;
    skos:prefLabel "管理者権限"@ja ;
    skos:definition "コンピューター全体の設定を変更できる権限。"@ja ;
    skos:altLabel "昇格"@ja .

<https://comcomponent.com/knowledge/network-drive-mapping/> a skos:Concept ;
    skos:prefLabel "ネットワークドライブの割り当て"@ja ;
    skos:definition "共有フォルダーをドライブレターに割り当てる、ログオンセッション単位の設定。昇格したセッションやSYSTEMで作成すると、利用者の通常のセッションからは見えない。"@ja ;
    skos:altLabel "New-SmbMapping" ;
    ks:requires <https://comcomponent.com/knowledge/user-phase/> .

<https://comcomponent.com/knowledge/user-phase/> a skos:Concept ;
    skos:prefLabel "ユーザーフェーズ(非昇格)"@ja ;
    skos:definition "HKCUレジストリ、ネットワークドライブ、共有プリンターなど利用者ごとに作られる設定を、利用者のログオンごとに非昇格で適用する実行フェーズ。"@ja ;
    skos:altLabel "ユーザーフェーズ"@ja .

<https://comcomponent.com/knowledge/shared-printer-connection/> a skos:Concept ;
    skos:prefLabel "共有プリンターへの接続"@ja ;
    skos:definition "利用者ごとに作られる、共有プリンターへの接続設定。管理者やSYSTEMで実行すると、そのアカウントにだけ接続が作られ利用者からは見えない。"@ja ;
    skos:altLabel "Add-Printer -ConnectionName" ;
    ks:requires <https://comcomponent.com/knowledge/user-phase/> .

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

<https://comcomponent.com/knowledge/hklm-run-key/> a skos:Concept ;
    skos:prefLabel "HKLMのRunキー"@ja ;
    skos:definition "ログオンした利用者の権限(非昇格)でコマンドを自動実行させる、HKEY_LOCAL_MACHINE配下のレジストリキー。"@ja ;
    skos:altLabel "HKLM\\...\\CurrentVersion\\Run" ;
    ks:automates <https://comcomponent.com/knowledge/user-phase/> .

<https://comcomponent.com/knowledge/group-policy/> a skos:Concept ;
    skos:prefLabel "グループポリシー"@ja ;
    skos:definition "Active Directoryドメイン環境でWindowsの設定を集中構成する仕組み。"@ja ;
    skos:altLabel "GPO" ;
    skos:altLabel "Group Policy" ;
    ks:automates <https://comcomponent.com/knowledge/user-phase/> .

<https://comcomponent.com/knowledge/system-context-execution/> a skos:Concept ;
    skos:prefLabel "システムコンテキストでの実行"@ja ;
    skos:definition "ログオン中の利用者とは別のSYSTEMアカウントなどでプログラムを実行すること。wingetはユーザーコンテキストでの実行を前提とした部分があり、システムコンテキストでの実行はMicrosoftが今後の開発項目として挙げている段階にある。"@ja ;
    skos:altLabel "SYSTEM権限での実行"@ja .

<https://comcomponent.com/knowledge/ms-winget-client-module/> a skos:Concept ;
    skos:prefLabel "Microsoft.WinGet.Clientモジュール"@ja ;
    skos:definition "Find-WinGetPackage・Install-WinGetPackage・Get-WinGetPackage・Update-WinGetPackageなど、wingetの機能をPowerShellのコマンドレットとして提供するモジュール。結果をオブジェクトとして扱える。"@ja ;
    skos:altLabel "Microsoft.WinGet.Client" ;
    ks:implements <https://comcomponent.com/knowledge/winget/> .

<https://comcomponent.com/knowledge/scope-machine-option/> a skos:Concept ;
    skos:prefLabel "--scope machineオプション"@ja ;
    skos:definition "対応するパッケージに限り、全ユーザー向けにアプリを導入するwinget installのスコープ指定。"@ja ;
    skos:altLabel "--scope machine" .

<https://comcomponent.com/knowledge/msi-exit-code/> a skos:Concept ;
    skos:prefLabel "Windows Installerの終了コード(3010/1641)"@ja ;
    skos:definition "3010(要再起動)と1641(再起動を開始済み)はいずれもインストール成功を示すWindows Installerの終了コードで、0だけが成功ではない。"@ja ;
    skos:altLabel "ERROR_SUCCESS_REBOOT_REQUIRED" ;
    skos:altLabel "ERROR_SUCCESS_REBOOT_INITIATED" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winget/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/winget-export-import/> ;
    schema:description "wingetはexport/importサブコマンドとして、導入済みパッケージ一覧の書き出しと復元の実装を担う。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/winget/export> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winget/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/winget-configuration/> ;
    schema:description "wingetはconfigureサブコマンドとして、WinGet Configurationの実装を担う。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/configuration/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winget-configuration/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/powershell-dsc/> ;
    schema:description "WinGet ConfigurationはYAMLで宣言された望ましい状態を、PowerShell DSCを通じて適用する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/configuration/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winget-configuration/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/idempotency/> ;
    schema:description "WinGet Configurationは既に望ましい状態なら何もしないため、冪等性を実装している。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/configuration/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/custom-powershell-kitting/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/idempotency/> ;
    schema:description "自前のキッティングスクリプトは、各処理の前に現在の状態を確認してから変更することで冪等性を実装する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/configuration/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/custom-powershell-kitting/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/winget-coverage-gap/> ;
    schema:description "wingetがカバーしない領域(プリンター、ネットワークドライブ、レジストリ、社内独自アプリなど)は、自前のPowerShellスクリプトで補う。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/winget/export> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/elevated-phase/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/admin-rights/> ;
    schema:description "管理者フェーズは、マシン全体に効く設定を適用するため管理者権限を必要とする。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/security/application-security/application-control/user-account-control/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/network-drive-mapping/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/user-phase/> ;
    schema:description "ネットワークドライブの割り当てはログオンセッション単位の設定であり、利用者のログオン時に非昇格で行わないと利用者から見えない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/interactive-services> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/shared-printer-connection/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/user-phase/> ;
    schema:description "共有プリンターへの接続はユーザー単位の設定であり、利用者のログオン時に非昇格で行わないと利用者から見えない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/services/interactive-services> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:automates ;
    rdf:object <https://comcomponent.com/knowledge/user-phase/> ;
    schema:description "タスクスケジューラのログオン時トリガー(RunLevel Limited)は、ユーザーフェーズのスクリプトを利用者のログオンごとに非昇格で自動実行できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/scheduledtasks/register-scheduledtask> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hklm-run-key/> ;
    rdf:predicate ks:automates ;
    rdf:object <https://comcomponent.com/knowledge/user-phase/> ;
    schema:description "HKLMのRunキーに登録すると、ログオンした利用者の権限(非昇格)でユーザーフェーズのスクリプトを毎回自動実行できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/setupapi/run-and-runonce-registry-keys> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/group-policy/> ;
    rdf:predicate ks:automates ;
    rdf:object <https://comcomponent.com/knowledge/user-phase/> ;
    schema:description "ドメイン参加環境では、グループポリシーのログオンスクリプトもユーザーフェーズを利用者のログオンごとに自動実行する手段になる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/group-policy/group-policy-overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/system-context-execution/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/winget/> ;
    schema:description "wingetの一部機能はユーザーコンテキストでの実行を前提としており、SYSTEMアカウントなどシステムコンテキストからの実行では失敗することがある。システムコンテキスト対応はMicrosoftが今後の開発項目として挙げている段階だが、--scope machineやMicrosoft.WinGet.Clientモジュール経由の実行といった回避策で動作させられる場合もあるため、実際に使う実行アカウントでの検証が必須である。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/configuration/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ms-winget-client-module/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/winget/> ;
    schema:description "Microsoft.WinGet.Clientモジュールは、wingetの機能をPowerShellのコマンドレットとして実装したものである。"@ja ;
    ks:evidence <https://github.com/microsoft/winget-cli/blob/master/src/PowerShell/Microsoft.WinGet.Client/README.md> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ms-winget-client-module/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/system-context-execution/> ;
    schema:description "システムコンテキストでのwinget実行の制約に対し、PowerShellモジュール経由での実行が回避策の1つとして挙げられている。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/configuration/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/scope-machine-option/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/system-context-execution/> ;
    schema:description "全ユーザー向けにインストールする--scope machineの利用も、システムコンテキスト実行の制約に対する回避策の1つとして挙げられている。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/configuration/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/custom-powershell-kitting/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/msi-exit-code/> ;
    schema:description "自前スクリプトでの社内アプリ導入の成否は、3010・1641をどちらも成功として扱う終了コードの確認で判定する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/msi/error-codes> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winget/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/scope-machine-option/> ;
    schema:description "wingetのinstallコマンドは--scope machineで全ユーザー向けの導入を指定できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/winget/install> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/elevated-phase/> ;
    rdf:predicate ks:shouldPrecede ;
    rdf:object <https://comcomponent.com/knowledge/user-phase/> ;
    schema:description "端末につき1回だけ実行する管理者フェーズは、設定JSONをProgramData配下へ配ったうえで、利用者ログオンごとに実行するユーザーフェーズより先に行う構成になっている。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/winget/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/custom-powershell-kitting/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/winget/> ;
    schema:description "管理者フェーズのスクリプトは、wingetパッケージの導入判定と実行にwingetコマンドを直接呼び出す。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/winget/install> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
