知識マップ: PowerShellモジュールの社内配布と更新 ── PSResourceGetと社内リポジトリ

記事「PowerShellモジュールの社内配布と更新 ── PSResourceGetと社内リポジトリ」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

この記事は共有フォルダーでのps1配布から卒業し、PowerShell 7.4に同梱されるPSResourceGetで社内リポジトリを構築・運用する方法を扱います。PSResourceGetは従来のPowerShellGetの後継として、Register-PSResourceRepositoryで登録したリポジトリに対しPublish-PSResource・Install-PSResource・Update-PSResourceで公開・取得・更新を行います。マニフェストにバージョンとFunctionsToExportを配列で明示することが内部関数の意図しない公開を防ぎ、共有フォルダーのアクセス制御が配布の実質的なセキュリティ境界になります。無人実行にはAllUsersスコープと管理者権限が必要で、実行ポリシーAllSignedの環境では各ファイルへのAuthenticode署名が必須であり、カタログ署名だけではこの要件を満たせません。

PSResourceGetによるモジュール社内配布の知識マップPSResourceGetが従来のPowerShellGetを置き換え社内リポジトリでの公開・取得・更新を担うこと、マニフェストとFunctionsToExportの明示が内部関数の意図しない公開を防ぐこと、共有フォルダーのアクセス制御がセキュリティ境界になること、AllSigned環境ではAuthenticode署名が必須でカタログ署名だけでは満たせないことの関係を示す図の後継利用するで構成できる前提とする利用する利用する利用する利用する前提とする前提とする推奨される対応利用する原因になり得る防止する推奨される対応利用する利用する前提とする利用する推奨される対応前提とする前提とするPSResourceGet(Microsoft.PowerShell.PSResourceGet)社内リポジトリ(PSResourceGet)PowerShellGet 2.2.5(従来版)Register-PSResourceRepository社内リポジトリ共有フォルダーのアクセス制御Publish-PSResourceInstall-PSResourceUpdate-PSResource-Scope(CurrentUser/AllUsers)タスクスケジューラの無人実行管理者権限セマンティックバージョニング(モジュール)モジュールマニフェスト(.psd1)プレリリース版(PrivateData.PSData.Prerelease)FunctionsToExportのワイルドカード指定('*')内部関数の意図しない公開FunctionsToExportの配列明示Authenticode署名(スクリプトファイル)コード署名証明書コード署名のタイムスタンプ実行ポリシーAllSignedカタログ署名(New-FileCatalog)$env:PSModulePath(モジュールの探索パス)

概念間の関係(全22件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

PSResourceGet(Microsoft.PowerShell.PSResourceGet)
従来のPowerShellGetとPackageManagementを置き換える、PowerShellのモジュール・パッケージ管理の仕組み。PowerShell 7.4に同梱され、従来のPowerShellGet 2.2.5と並存できる。
社内リポジトリ(PSResourceGet)
Register-PSResourceRepositoryで登録する、社内向けにモジュールを配布・取得するためのリポジトリ。ファイル共有(UNCパス)またはNuGet互換フィードとして構成できる。
Install-PSResource
リポジトリからモジュールを取得してインストールするコマンドレット。-Name・-Version・-Repository・-Scopeなどで対象と配置先を指定する。
タスクスケジューラの無人実行
指定したアカウントで、スケジュールやログオンなどのトリガーに従いプログラムを実行するWindowsの仕組み。ログオン種別(対話トークン・パスワード保存・S4Uなど)の設定によっては、ユーザーがログオンしていなくても実行できる。
-Scope(CurrentUser/AllUsers)
Install-PSResourceでモジュールをインストールする範囲を指定するパラメーター。CurrentUserはユーザー個別の場所、AllUsersは全ユーザー共通の場所(Program Files配下)に書き込む。
セマンティックバージョニング(モジュール)
メジャー.マイナー.パッチの形式で、破壊的変更を必ずメジャーで表現するバージョン付けの規約。
モジュールマニフェスト(.psd1)
モジュールのバージョン番号・公開する関数・依存モジュール・対応するPowerShellのバージョンやエディションを宣言するファイル。New-ModuleManifestで雛形を作成する。
FunctionsToExportのワイルドカード指定('*')
モジュールの公開関数をワイルドカードで指定するマニフェストの書き方。モジュール本体を解析しないと公開関数が分からないためコマンド探索が遅くなる。
FunctionsToExportの配列明示
モジュールの公開関数をワイルドカードではなく配列で明示するマニフェストの書き方。コマンド探索が速くなり、内部関数の意図しない公開も防げる。
Authenticode署名(スクリプトファイル)
個々の.ps1・.psm1ファイルの発行元と完全性を担保する署名。実行ポリシーAllSignedはこの署名を検証する。
実行ポリシーAllSigned
ローカル作成分も含むすべてのスクリプトと構成ファイルに、信頼された発行元によるAuthenticode署名を要求する実行ポリシーの値。未分類の発行元は実行前に確認を求める。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。