Remove-Module
Entfernt Module aus der aktuellen Sitzung.
Syntax
Remove-Module
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Module
[-FullyQualifiedName] <ModuleSpecification[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Module
[-ModuleInfo] <PSModuleInfo[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Remove-Module-Cmdlet entfernt die Elemente eines Moduls, wie z. B. Cmdlets und Funktionen, aus der aktuellen Sitzung.
Wenn das Modul eine Assembly (.dll) enthält, werden alle Elemente entfernt, die von der Assembly implementiert werden, die Assembly wird jedoch nicht entladen.
Mit diesem Cmdlet wird das Modul nicht deinstalliert oder vom Computer gelöscht. Es wirkt sich nur auf die aktuelle PowerShell-Sitzung aus.
Beispiele
Beispiel 1: Entfernen eines Moduls
Remove-Module -Name "BitsTransfer"
Mit diesem Befehl wird das BitsTransfer-Modul aus der aktuellen Sitzung entfernt.
Beispiel 2: Entfernen aller Module
Get-Module | Remove-Module
Dieser Befehl entfernt alle Module aus der aktuellen Sitzung.
Beispiel 3: Entfernen von Modulen mithilfe der Pipeline
"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')".
Dieser Befehl entfernt die BitsTransfer- und PSDiagnostics-Module aus der aktuellen Sitzung.
Der Befehl verwendet einen Pipelineoperator (|), um die Modulnamen an Remove-Module zu senden. Er verwendet den allgemeinen Verbose-Parameter, um detaillierte Informationen über die zu entfernenden Elemente abzurufen.
Die ausführlichen Nachrichten zeigen die Elemente an, die entfernt werden. Die Meldungen unterscheiden sich voneinander, da das BitsTransfer-Modul eine Assembly enthält, die die Cmdlets implementiert, sowie ein geschachteltes Modul mit seiner eigenen Assembly. Das PSDiagnostics-Modul umfasst eine Modulskriptdatei (.psm1), die Funktionen exportiert.
Beispiel 4: Entfernen eines Moduls mithilfe von ModuleInfo
$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a
Dieser Befehl verwendet den ModuleInfo-Parameter , um das BitsTransfer-Modul zu entfernen.
Parameter
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Gibt an, dass dieses Cmdlet schreibgeschützte Module entfernt. In der Standardeinstellung entfernt Remove-Module nur Module mit Lese-/ Schreibzugriff.
Die Werte ReadOnly und ReadWrite sind in der AccessMode-Eigenschaft eines Moduls gespeichert.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FullyQualifiedName
Gibt die vollständig qualifizierten Namen von Zu entfernenden Modulen an.
Type: | ModuleSpecification[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ModuleInfo
Gibt die zu entfernenden Modulobjekte an. Geben Sie eine Variable ein, die ein Modulobjekt (PSModuleInfo) oder einen Befehl enthält, der ein Modulobjekt abruft, z. B. einen Get-Module Befehl. Sie können auch Modulobjekte an Remove-Module übergeben.
Type: | PSModuleInfo[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Gibt die Namen der zu entfernenden Module an. Platzhalterzeichen sind zulässig. Sie können auch Namenszeichenfolgen an Remove-Module übergeben.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
System.String, System.Management.Automation.PSModuleInfo
Sie können Modulnamen und Modulobjekte an Remove-Module verrohren.
Ausgaben
None
Dieses Cmdlet generiert keine Ausgabe.
Hinweise
Beim Entfernen eines Moduls gibt es ein Ereignis auf dem Modul, das ausgeführt wird. Dieses Ereignis ermöglicht es einem Modul, auf die Entfernung zu reagieren und einige Bereinigungen auszuführen, z. B. das Freigeben von Ressourcen. Beispiel:
$OnRemoveScript = {
# Bereinigung durchführen
$cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
Für vollständige Konsistenz kann es auch nützlich sein, auf das Schließen des PowerShell-Prozesses zu reagieren:
Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Action $OnRemoveScript