PowerShellを使っていると、さまざまなモジュールをインストールすることがあります。
しかし、使わなくなったモジュールや古いバージョンが残っていると、システムの動作が重くなったり、競合問題が発生することがあります。
この記事では、PowerShellモジュールを安全にアンインストールする方法を、初心者の方にもわかりやすく解説します。
重要なポイント:2つのコマンドの違いを理解しよう

PowerShellでモジュールを削除するには、2つの主要なコマンドがあります。
この違いを理解することが、安全なモジュール管理の第一歩です。
Remove-Module:一時的な削除(アンロード)
Remove-Moduleは、現在のPowerShellセッションから読み込み済みのモジュールを一時的に取り除くコマンドです。
特徴
- モジュールファイルはディスクに残る
- PowerShellを再起動すると、また読み込める
- 一時的にモジュールを無効にしたいときに使用
Uninstall-Module:完全な削除(アンインストール)
Uninstall-Moduleは、ディスクからモジュールファイルを完全に削除するコマンドです。
特徴
- モジュールファイルがディスクから削除される
- PowerShell Galleryからインストールしたモジュールが対象
- 完全にモジュールを削除したいときに使用
事前チェック:インストール済みモジュールを確認する
モジュールを削除する前に、どのモジュールがインストールされているか確認しましょう。
インストール済みモジュールの確認
# PowerShell Gallery経由でインストールしたモジュール一覧
Get-InstalledModule
# すべての利用可能なモジュール一覧(手動配置含む)
Get-Module -ListAvailable
モジュールの保存場所を確認
モジュールがどこに保存されているかを確認することで、削除に必要な権限がわかります。
# モジュールの保存パスを表示
$env:PSModulePath -split ';'
保存場所の意味
C:\Program Files\WindowsPowerShell\Modules\
:すべてのユーザー用(管理者権限が必要)C:\Users\<ユーザー名>\Documents\PowerShell\Modules\
:現在のユーザー用
一時的な削除:Remove-Moduleの使い方

作業中にモジュールを一時的に無効にしたい場合は、Remove-Moduleを使います。
基本的な使い方
# 例:Az.Accountsモジュールを一時的にアンロード
Remove-Module Az.Accounts
強制的にアンロードする場合
モジュールに依存関係がある場合、通常の方法では削除できないことがあります。そのときは**-Force**オプションを使います。
# 強制的にアンロード
Remove-Module Az.Accounts -Force
注意点
- 他のモジュールが依存している場合、エラーが発生する可能性があります
- PowerShellを再起動すると、モジュールは再び利用可能になります
完全な削除:Uninstall-Moduleの使い方
モジュールを完全に削除したい場合は、Uninstall-Moduleを使います。
基本的な削除方法
# 例:古いPesterモジュールを削除
Uninstall-Module -Name Pester
すべてのバージョンを削除
同じモジュールの複数バージョンがインストールされている場合は、-AllVersionsオプションを使います。
# すべてのバージョンを削除
Uninstall-Module -Name Pester -AllVersions
確認プロンプトをスキップ
削除の確認を求められたくない場合は、-Forceオプションを使います。
# 確認なしで削除
Uninstall-Module -Name Pester -Force
特定のバージョンだけ削除
特定のバージョンのみを削除したい場合は、-RequiredVersionオプションを使います。
# バージョン5.5.0のみを削除
Uninstall-Module -Name Pester -RequiredVersion 5.5.0
管理者権限が必要な場合の対処法
システム全体にインストールされたモジュール(AllUsersスコープ)を削除するには、管理者権限が必要です。
PowerShellを管理者として起動する方法
- スタートメニューで「PowerShell」を検索
- 右クリックして「管理者として実行」を選択
- ユーザーアカウント制御(UAC)で「はい」をクリック
Visual Studio Codeを使用している場合
VS Codeのターミナルから実行する場合は、VS Code自体を管理者として起動してください。
- VS Codeを右クリック
- 「管理者として実行」を選択
- ターミナル内でUninstall-Moduleコマンドを実行
PowerShell 7とWindows PowerShell 5.1の両方に対応

PowerShell 7(PowerShell Core)とWindows PowerShell 5.1の両方を使用している場合、それぞれでモジュール管理が必要になることがあります。
PackageManagementを使用した削除
# インストール済みパッケージの確認
Get-Package
# パッケージの削除
Uninstall-Package -Name <モジュール名>
この方法は、PowerShellのバージョンに関係なく使用できます。
トラブルシューティング:削除できない場合の対処法

モジュールの削除でよくある問題と、その解決方法をご紹介します。
よくあるエラーと対処法
エラーメッセージ | 原因 | 対処法 |
---|---|---|
No match was found | モジュール名やバージョンが間違っている | Get-InstalledModule で正確な名前を確認 |
フォルダーを使用中です | モジュールがセッションで読み込まれている | Remove-Module でアンロード後に再実行 |
依存関係エラー | 他のモジュールが依存している | -Force オプションを使用、または依存先も削除 |
アクセスが拒否されました | 管理者権限が必要 | PowerShellを管理者として実行 |
段階的な対処手順
手順1:セッションからのアンロード
Remove-Module <モジュール名> -Force
手順2:PowerShellの再起動
- PowerShellを完全に閉じて、再度開く
手順3:管理者権限で実行
- 管理者としてPowerShellを起動し、再度削除を試行
手順4:依存関係の確認
# モジュールの依存関係を確認
Get-Module <モジュール名> -ListAvailable | Select-Object -ExpandProperty RequiredModules
最終手段:手動でのフォルダー削除
Uninstall-Moduleでどうしても削除できない場合は、手動でフォルダーを削除することもできます。ただし、この方法は最終手段として使用してください。
手動削除の手順
- PowerShellを完全に閉じる
- エクスプローラーでモジュールフォルダーを開く
C:\Program Files\WindowsPowerShell\Modules\
またはC:\Users\<ユーザー名>\Documents\PowerShell\Modules\
- 該当するモジュールのフォルダーを削除
- PowerShellを再起動
- 削除確認
Get-Module -ListAvailable | Where-Object Name -eq <削除したモジュール名>
手動削除の注意点
- 依存関係を壊すリスクがあります
- システムの動作に影響を与える可能性があります
- 必ずバックアップを取ってから実行してください
実践例:よく使われるモジュールの削除

Azure PowerShellモジュールの削除
# 現在読み込まれているAzureモジュールをアンロード
Get-Module Az.* | Remove-Module -Force
# すべてのAzureモジュールを削除
Get-InstalledModule Az.* | Uninstall-Module -Force
Pesterテストフレームワークの削除
# 古いバージョンのPesterを削除
Uninstall-Module -Name Pester -AllVersions -Force
PowerShell Getモジュールの削除
# PowerShellGetの古いバージョンを削除
Uninstall-Module -Name PowerShellGet -RequiredVersion 1.0.0.1
まとめ:安全なモジュール管理のコツ
PowerShellモジュールの削除は、正しい方法を理解して実行すれば安全です。以下のポイントを覚えておきましょう。
削除方法の使い分け
- 一時的に無効にしたい場合:
Remove-Module
- 完全に削除したい場合:
Uninstall-Module
安全な削除のためのチェックポイント
- 事前確認:
Get-InstalledModule
でモジュール一覧を確認 - 権限確認:管理者権限が必要かどうかスコープを確認
- 依存関係確認:他のモジュールに影響がないか確認
- 段階的実行:エラーが出た場合は段階的にトラブルシューティング
コメント