PowerShellでロード済みモジュールを確認する:Get-Moduleコマンドの使い方

PowerShellは、多くの管理者や開発者にとって欠かせないツールです。その中でも、機能を拡張するために利用される「モジュール」は非常に重要な存在です。モジュールを使えば、PowerShellの標準機能に加え、さまざまなコマンドレットや関数を追加できます。
しかし、複数のモジュールを扱う中で「今ロードされているモジュールは何か?」を確認したい場面が出てきます。
そんなときに活躍するのが「Get-Module」コマンドです。この記事では、Get-Moduleコマンドの基本的な使い方から、便利なオプション、具体的な使用例まで、わかりやすく解説します。


Get-Moduleコマンドとは?

Get-Moduleは、PowerShellで現在ロードされているモジュールや、システム上に存在するモジュールを確認するためのコマンドです。
基本構文は以下のように非常にシンプルです。

Get-Module

このコマンドを実行するだけで、現在セッションにロードされているモジュールの一覧を確認できます。
つまり、PowerShellが起動してから、明示的または自動的に読み込まれたモジュールが一覧で表示されるのです。


現在ロード済みのモジュールを確認する

何もパラメータを指定せずに Get-Module を実行すると、現在セッションに読み込まれているモジュールの情報が表示されます。出力には以下のような情報が含まれます。

  • ModuleType(モジュールの種類)
  • Version(バージョン)
  • Name(モジュール名)
  • ExportedCommands(そのモジュールが提供しているコマンド)

例:

Get-Module

出力例:

mathematicaコピーする編集するModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     2.0.0      PSReadLine                          {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, ...}
Manifest   1.0.0.0    Microsoft.PowerShell.Management     {Get-Process, Start-Service, ...}

このように、現在使える機能のベースとなっているモジュールの一覧を確認することができます。


特定のモジュールの情報を取得する

Get-Module にモジュール名を指定すれば、そのモジュールだけを確認することも可能です。

例:

Get-Module -Name PSReadLine

このコマンドにより、指定したモジュールの詳細情報が表示されます。バージョンやパス、依存関係などがわかります。


利用可能なすべてのモジュールを一覧表示する

現在ロードされているモジュールだけでなく、システム上にインストールされているすべてのモジュールを確認したい場合は、-ListAvailable パラメータを使います。

例:

Get-Module -ListAvailable

出力されるモジュールの一覧は、ロード済みでないものも含まれます。PowerShellの各バージョン、ユーザープロファイル、プログラムファイルなどのフォルダから自動的に検索されます。


モジュールの詳細を確認する

詳細情報を見たい場合には、Format-List を使うことで、モジュールの内部情報を一覧形式で確認できます。

例:

Get-Module -Name PSReadLine | Format-List *

これにより、そのモジュールが格納されているパス、バージョン、依存関係、説明などを細かくチェックできます。


実用的な使い方の例

1. ロード済みモジュールの数を調べる

(Get-Module).Count

現在読み込まれているモジュールが何個あるかを確認できます。

2. モジュール名だけを一覧で取得

Get-Module | Select-Object -ExpandProperty Name

3. 特定のモジュールがロードされているかどうかを確認

if (Get-Module -Name Az) {
Write-Output "Az モジュールはロードされています。"
} else {
Write-Output "Az モジュールはロードされていません。"
}

モジュールがロードされるタイミングとは?

PowerShellでは、モジュールは必要なときに自動的にロードされる仕組みになっています。たとえば、Get-Processを実行したとき、それを提供する Microsoft.PowerShell.Management モジュールが自動でロードされます。

また、手動でロードするには Import-Module を使用します。

Import-Module -Name Az

そして、読み込まれたかどうかは Get-Module で確認できます。


不要なモジュールをアンロードするには?

不要になったモジュールは Remove-Module コマンドでセッションから削除できます。

Remove-Module -Name PSReadLine

再度そのモジュールを使用したい場合は、Import-Module で読み込み直せます。


よくあるトラブルと対処法

モジュールが見つからない

Get-Module -ListAvailable に表示されない場合、そのモジュールはインストールされていない可能性があります。Install-Module を使ってインストールしましょう。

Install-Module -Name モジュール名 -Scope CurrentUser

古いバージョンがロードされる

複数バージョンがインストールされている場合、意図しないバージョンが読み込まれることがあります。Import-Module-Version を指定して制御しましょう。

Import-Module -Name Az -Version 9.0.0

まとめ

Get-Module コマンドは、PowerShellで現在使用可能なモジュールの状態を確認したいときに非常に便利なツールです。特に複数のモジュールを管理する開発・運用の現場では、モジュールのロード状況や詳細情報を素早く把握することが重要になります。
今回紹介したように、基本の使い方から応用的な使い方まで覚えておけば、PowerShellの作業効率が大きく向上します。

ぜひ、日常のPowerShell作業に Get-Module を取り入れて、よりスマートにモジュールを扱っていきましょう。

タイトルとURLをコピーしました