Remove-Module
現在のセッションからモジュールを削除します。
構文
Remove-Module
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Module
[-FullyQualifiedName] <ModuleSpecification[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Module
[-ModuleInfo] <PSModuleInfo[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Remove-Module
コマンドレットは、コマンドレットや関数などのモジュールのメンバーを現在のセッションから削除します。
モジュールにアセンブリ (.dll
) が含まれている場合、アセンブリによって実装されているすべてのメンバーは削除されますが、アセンブリはアンロードされません。
このコマンドレットは、モジュールをアンインストールしたり、コンピューターから削除したりすることはありません。 現在の PowerShell セッションにのみ影響します。
例
例 1: モジュールを削除する
Remove-Module -Name "BitsTransfer"
このコマンドは、BitsTransfer モジュールを現在のセッションから削除します。
例 2: すべてのモジュールを削除する
Get-Module | Remove-Module
このコマンドは、現在のセッションからすべてのモジュールを削除します。
例 3: パイプラインを使用してモジュールを削除する
"FileTransfer", "PSDiagnostics" | Remove-Module -Verbose
VERBOSE: Performing operation "Remove-Module" on Target "filetransfer (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\filetransfer\filetransfer.psd1')".
VERBOSE: Performing operation "Remove-Module" on Target "Microsoft.BackgroundIntelligentTransfer.Management (Path: 'C:\Windows\assembly\GAC_MSIL\Microsoft.BackgroundIntelligentTransfer.Management\1.0.0.0__31bf3856ad364e35\Microsoft.BackgroundIntelligentTransfe
r.Management.dll')".
VERBOSE: Performing operation "Remove-Module" on Target "psdiagnostics (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\psdiagnostics\psdiagnostics.psd1')".
VERBOSE: Removing imported function 'Start-Trace'.
VERBOSE: Removing imported function 'Stop-Trace'.
VERBOSE: Removing imported function 'Enable-WSManTrace'.
VERBOSE: Removing imported function 'Disable-WSManTrace'.
VERBOSE: Removing imported function 'Enable-PSWSManCombinedTrace'.
VERBOSE: Removing imported function 'Disable-PSWSManCombinedTrace'.
VERBOSE: Removing imported function 'Set-LogProperties'.
VERBOSE: Removing imported function 'Get-LogProperties'.
VERBOSE: Removing imported function 'Enable-PSTrace'.
VERBOSE: Removing imported function 'Disable-PSTrace'.
VERBOSE: Performing operation "Remove-Module" on Target "PSDiagnostics (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\psdiagnostics\PSDiagnostics.psm1')".
このコマンドは、BitsTransfer を削除し、現在のセッションから PSDiagnostics モジュールを します。
このコマンドは、パイプライン演算子 (|
) を使用してモジュール名を Remove-Module
に送信します。
Verbose 共通パラメーターを使用して、削除されるメンバーに関する詳細情報を取得します。
詳細 メッセージには、削除された項目が表示されます。 BitsTransfer モジュールには、そのコマンドレットを実装するアセンブリと、独自のアセンブリを持つ入れ子になったモジュールが含まれているため、メッセージは異なります。 PSDiagnostics モジュールには、関数をエクスポートするモジュール スクリプト ファイル (.psm1
) が含まれています。
例 4: ModuleInfo を使用してモジュールを削除する
$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a
このコマンドは、ModuleInfo パラメーターを使用して BitsTransfer モジュールを削除します。
例 5: OnRemove イベントの使用
モジュールを削除すると、モジュールによってイベント トリガーが発生します。これにより、モジュールは削除に対応し、リソースの解放などのクリーンアップ タスクを実行できます。
$OnRemoveScript = {
# perform cleanup
$cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
$registerEngineEventSplat = @{
SourceIdentifier = ([System.Management.Automation.PsEngineEvent]::Exiting)
Action = $OnRemoveScript
}
Register-EngineEvent @registerEngineEventSplat
$OnRemoveScript
変数には、リソースをクリーンアップするスクリプト ブロックが含まれています。 スクリプト ブロックは、$ExecutionContext.SessionState.Module.OnRemove
に割り当てることで登録します。
Register-EngineEvent
を使用して、PowerShell セッションの終了時にスクリプト ブロックを実行することもできます。
スクリプト ベースのモジュールの場合は、このコードを .PSM1
ファイルに追加するか、モジュール マニフェストの ScriptsToProcess プロパティに記載されているスタートアップ スクリプトに配置します。
パラメーター
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
このコマンドレットが読み取り専用モジュールを削除することを示します。 既定では、Remove-Module
は読み取り/書き込みモジュールのみを削除します。
ReadOnly と ReadWrite の値は、モジュールの AccessMode プロパティ 格納されます。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-FullyQualifiedName
値には、モジュール名、完全なモジュール仕様、またはモジュール ファイルへのパスを指定できます。
値がパスの場合、パスは完全修飾または相対パスにすることができます。 相対パスは、using ステートメントを含むスクリプトを基準にして解決されます。
値が名前またはモジュールの指定である場合、PowerShell は指定されたモジュールの PSModulePath を検索します。
モジュール仕様は、次のキーを持つハッシュテーブルです。
-
ModuleName
- 必須 モジュール名を指定します。 -
GUID
- 省略可能 モジュールの GUID を指定します。 - また、以下の 3 つのキーのうち少なくとも 1 つを指定する必要 も。
-
ModuleVersion
- モジュールの最小許容バージョンを指定します。 -
MaximumVersion
- モジュールの許容される最大バージョンを指定します。 -
RequiredVersion
- モジュールの正確で必要なバージョンを指定します。 これは、他のバージョン キーでは使用できません。
-
型: | ModuleSpecification[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-ModuleInfo
削除するモジュール オブジェクトを指定します。
PSModuleInfo オブジェクトを含む変数、またはモジュール オブジェクトを取得するコマンド (Get-Module
コマンドなど) を入力します。 モジュール オブジェクトをパイプして Remove-Module
することもできます。
型: | PSModuleInfo[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Name
削除するモジュールの名前を指定します。 ワイルドカード文字を使用できます。 名前文字列をパイプして Remove-Module
することもできます。
型: | String[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
モジュール名をこのコマンドレットにパイプできます。
モジュール オブジェクトをこのコマンドレットにパイプできます。
出力
None
このコマンドレットは出力を返しません。
メモ
PowerShell には、Remove-Module
の次のエイリアスが含まれています。
- すべてのプラットフォーム:
rmo
モジュールを削除すると、クリーンアップ コードの実行に使用できるイベントがトリガーされます。 詳細については、例 5 参照してください。
関連リンク
PowerShell