PowerShellにはモジュールという仕組みで機能を追加できる
PowerShell(Windows PowerShellを含むが、異なるところをのぞき、PowerShellと表記)にはモジュールという仕組みがある。モジュールは、PowerShellに機能を追加するものだ。
スクリプトを使ったプロファイルは、起動するセッションの下準備に使われるが、モジュールはPowerShellに対してインストールされ、以後はアンインストールするまで組み込んだコマンドなどを利用できる。この点が起動時にのみ実行されるスクリプトであるプロファイルと異なる点だ。
下の表は、モジュールの種類を示す。
モジュールは、PowerShellスクリプトで記述することもできるが、それ以外にC#などで作成されたアセンブリなども組み込める。マニフェストは、モジュールのメタデータの記述やエクスポート制御、依存関係の定義、PowerShellギャラリー公開用情報の定義などをするためのもの。通常は、アセンブリやスクリプトと組み合わせてパッケージ(後述)を作る。
また、モジュールをスクリプト内で定義し、New-Moduleコマンドによりモジュールとして追加する方法もある。これにより、モジュールを動的に作成・削除することも可能になる。
モジュールは、NuGet形式と呼ばれるファイル形式(.nupkgファイル)でパッケージ化されて配布される。この形式は、PowerShellギャラリーで配布を行うための形式でもある。
●PowerShellギャラリー
https://www.powershellgallery.com/
この形式は実際にはZIPファイルで、前記のモジュールを1つにまとめたものである。
インストールされたモジュールは、ユーザーディレクトリ(C:\Users\<ユーザー名>\)以下に保存される。格納先はWindows PowerShellとPowerShell 7.xで若干異なる。また、モジュールを現在のユーザーのみで使うのか、全ユーザーで使うのかといった「スコープ」でも異なる。
モジュールは、上記のディレクトリにモジュール名でサブディレクトリを作成して格納される。ここを直接操作することは推奨されないが、サブディレクトリ内を見ることで、モジュールとして何がインストールされたのかを見られる。
モジュールは、PowerShellのコマンドで扱う。以下の表は、モジュールに関係するコマンドの一覧である。このうち、大半は、PowerShellGetモジュールに含まれている。
それ以外のコマンド(Get-Module)などは、Microsoft.PowerShell.Coreスナップインとして提供されている。スナップインは、初期のPowerShellで利用されていたモジュールに似た機構である。現在はスナップインの大半がモジュール化されている。ただし、Microsoft.PowerShell.Coreのような根幹的な機能に関しては、スナップインのままのこっている。
PowerShellの動詞Find-、Get-から始まるコマンドは、モジュールの検索や一覧の表示をするもの。名詞としてPSRepositoryを使うのは、モジュールを公開しているリポジトリ関連の設定である。また、New-、Test-を動詞に使うのは、モジュール作成関連のコマンドとなる。それ以外は、モジュールを扱うコマンドである。個々のコマンドに関しては、以下のページを参照してほしい。
●PowerShellGet Module
https://learn.microsoft.com/ja-jp/powershell/module/powershellget/?view=powershellget-2.x
●Microsoft.PowerShell.Core Module
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/?view=powershell-7.6 よく利用する自作コマンドなどがある場合、プロファイルなどで登録しておき、実績をつんだのちモジュール化することで、組織などをまたいで、複数のマシンで機能を共有できる。また、PowerShellギャラリーに登録することもできる。
本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
-
第552回
PC
RTX Spark搭載のWindows機はPCの大きな変化の始まりか? Windowsハードウェア、AI PCはどうなる? -
第551回
PC
WSLコンテナーにおけるネットワークについて解説 -
第550回
PC
WSLコンテナーにおけるストレージについて解説 -
第549回
PC
安定版に進化したWSLコンテナーの仕組み -
第548回
PC
Windows 11 Ver.26H2の配布が開始 すでに5回目のメジャーアップデートで「次」も気になる頃合い!? -
第547回
PC
Windows 11におけるファイルとフォルダの削除の仕組みについて -
第546回
PC
Windows 11でBluetoothオーディオ共有(Auracast)を試してみる -
第545回
PC
PowerShellにおけるwinget -
第544回
PC
Windows 11 Ver.26H2プレビュー公開 さらにその次のWindowsも少し見えてきた -
第543回
PC
「WMIC」が消滅 コマンドが消える「WMI」とはそもそも何? - この連載の一覧へ














