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
を取り入れて、よりスマートにモジュールを扱っていきましょう。