知識マップ: winget + PowerShellでPCキッティングを自動化する ── 手順書を実行可能にする
記事「winget + PowerShellでPCキッティングを自動化する ── 手順書を実行可能にする」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
新入社員PCのキッティング手順書を実行可能なファイルに置き換える記事で、アプリ導入はwingetに任せ、winget export/importは既存標準機のパッケージ一覧だけを再現できる出発点にすぎないと位置づける。宣言的に構成したい場合はPowerShell DSCベースのWinGet Configurationが冪等な適用を実装するが、ネットワークドライブや共有プリンターなどログオンセッション単位の設定は対象外で、自前のPowerShellスクリプトで補う必要がある。そのスクリプトはマシン全体の設定を担う管理者フェーズと、利用者ごとの設定をログオンのたびに非昇格で適用するユーザーフェーズに分け、タスクスケジューラやHKLMのRunキーで後者を起動する。wingetはシステムコンテキストでの実行を前提としない部分があるため、Microsoft.WinGet.Clientモジュールや--scope machineが回避策として挙げられる。
flowchart LR
accTitle: winget + PowerShellでのPCキッティング自動化の知識マップ
accDescr: wingetとWinGet Configurationがアプリ導入とその冪等な宣言的構成を担う一方、ネットワークドライブや共有プリンターなどユーザー単位の設定はカバーせず自前PowerShellの管理者フェーズとユーザーフェーズで補う構造、システムコンテキスト実行の制約とその回避策の関係を示す図
winget["winget"]
winget_configuration["WinGet Configuration"]
idempotency["冪等性"]
winget_export_import["winget export/import"]
powershell_dsc["PowerShell DSC"]
custom_powershell_kitting["自前PowerShellキッティングスクリプト"]
winget_coverage_gap["wingetがカバーしない領域"]
elevated_phase["管理者フェーズ(昇格)"]
admin_rights["管理者権限"]
network_drive_mapping["ネットワークドライブの割り当て"]
user_phase["ユーザーフェーズ(非昇格)"]
shared_printer_connection["共有プリンターへの接続"]
task_scheduler["タスクスケジューラの無人実行"]
hklm_run_key["HKLMのRunキー"]
group_policy["グループポリシー"]
system_context_execution["システムコンテキストでの実行"]
ms_winget_client_module["Microsoft.WinGet.Clientモジュール"]
scope_machine_option["--scope machineオプション"]
msi_exit_code["Windows Installerの終了コード(3010/1641)"]
winget -->|"実装を担う"| winget_export_import
winget -->|"実装を担う"| winget_configuration
winget_configuration -->|"利用する"| powershell_dsc
winget_configuration -->|"実装を担う"| idempotency
custom_powershell_kitting -->|"実装を担う"| idempotency
custom_powershell_kitting -->|"軽減する"| winget_coverage_gap
elevated_phase -->|"前提とする"| admin_rights
network_drive_mapping -->|"前提とする"| user_phase
shared_printer_connection -->|"前提とする"| user_phase
task_scheduler -->|"自動化する"| user_phase
hklm_run_key -->|"自動化する"| user_phase
group_policy -->|"自動化する"| user_phase
system_context_execution -.->|"両立しない"| winget
ms_winget_client_module -->|"実装を担う"| winget
ms_winget_client_module -.->|"軽減する"| system_context_execution
scope_machine_option -.->|"軽減する"| system_context_execution
custom_powershell_kitting -->|"で確認できる"| msi_exit_code
winget -->|"利用する"| scope_machine_option
elevated_phase -->|"より先に行うべき"| user_phase
custom_powershell_kitting -->|"利用する"| winget
概念間の関係(全20件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- wingetはwinget export/importの実装を担います。
- wingetはWinGet Configurationの実装を担います。
- WinGet ConfigurationはPowerShell DSCを利用します。
- WinGet Configurationは冪等性の実装を担います。
- 自前PowerShellキッティングスクリプトは冪等性の実装を担います。
- 自前PowerShellキッティングスクリプトはwingetがカバーしない領域を軽減します。
- 管理者フェーズ(昇格)は管理者権限を前提とします。
- ネットワークドライブの割り当てはユーザーフェーズ(非昇格)を前提とします。
- 共有プリンターへの接続はユーザーフェーズ(非昇格)を前提とします。
- タスクスケジューラの無人実行はユーザーフェーズ(非昇格)を自動化します。
- HKLMのRunキーはユーザーフェーズ(非昇格)を自動化します。
- グループポリシーはユーザーフェーズ(非昇格)を自動化します。
- システムコンテキストでの実行はwingetと両立しません。
- Microsoft.WinGet.Clientモジュールはwingetの実装を担います。
- Microsoft.WinGet.Clientモジュールはシステムコンテキストでの実行を軽減します。
- --scope machineオプションはシステムコンテキストでの実行を軽減します。
- 自前PowerShellキッティングスクリプトはWindows Installerの終了コード(3010/1641)で確認できます。
- wingetは--scope machineオプションを利用します。
- 管理者フェーズ(昇格)はユーザーフェーズ(非昇格)より先に行うべきです。
- 自前PowerShellキッティングスクリプトはwingetを利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。