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 モジュールを削除します。
パラメーター
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
このコマンドレットが読み取り専用モジュールを削除することを示します。 既定では、 Remove-Module
読み取り/書き込みモジュールのみを削除します。
ReadOnly 値と ReadWrite 値は、モジュールの AccessMode プロパティに格納されます。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FullyQualifiedName
削除するモジュールの完全修飾名を指定します。
Type: | ModuleSpecification[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ModuleInfo
削除するモジュール オブジェクトを指定します。 モジュール オブジェクト (PSModuleInfo) またはモジュール オブジェクトを取得するコマンド (コマンドなど) を含む変数を Get-Module
入力します。 モジュール オブジェクトを に Remove-Module
パイプすることもできます。
Type: | PSModuleInfo[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
削除するモジュールの名前を指定します。 ワイルドカード文字を使用できます。 名前の文字列を に Remove-Module
パイプすることもできます。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
System.String, System.Management.Automation.PSModuleInfo
モジュール名とモジュール オブジェクトを に Remove-Module
パイプできます。
出力
None
このコマンドレットは出力を生成しません。
メモ
モジュールを削除すると、モジュール上に実行されるイベントがあります。 このイベントにより、モジュールは削除に対応し、リソースの解放などのクリーンアップを実行できます。 例:
$OnRemoveScript = {
# クリーンアップを実行する
$cachedSessions |Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
完全な一貫性を保つには、PowerShell プロセスの終了に対応することも役立つ場合があります。
Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Action $OnRemoveScript