Windows PowerShell でモジュールをアンインストールする方法

Windows

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を管理者として起動する方法

  1. スタートメニューで「PowerShell」を検索
  2. 右クリックして「管理者として実行」を選択
  3. ユーザーアカウント制御(UAC)で「はい」をクリック

Visual Studio Codeを使用している場合

VS Codeのターミナルから実行する場合は、VS Code自体を管理者として起動してください。

  1. VS Codeを右クリック
  2. 「管理者として実行」を選択
  3. ターミナル内で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でどうしても削除できない場合は、手動でフォルダーを削除することもできます。ただし、この方法は最終手段として使用してください。

手動削除の手順

  1. PowerShellを完全に閉じる
  2. エクスプローラーでモジュールフォルダーを開く
    • C:\Program Files\WindowsPowerShell\Modules\ または
    • C:\Users\<ユーザー名>\Documents\PowerShell\Modules\
  3. 該当するモジュールのフォルダーを削除
  4. PowerShellを再起動
  5. 削除確認
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

安全な削除のためのチェックポイント

  1. 事前確認Get-InstalledModuleでモジュール一覧を確認
  2. 権限確認:管理者権限が必要かどうかスコープを確認
  3. 依存関係確認:他のモジュールに影響がないか確認
  4. 段階的実行:エラーが出た場合は段階的にトラブルシューティング

コメント

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