Remove-Module
Entfernt Module aus der aktuellen Sitzung.
Syntax
name
Remove-Module
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FullyQualifiedName
Remove-Module
[-FullyQualifiedName] <ModuleSpecification[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ModuleInfo
Remove-Module
[-ModuleInfo] <PSModuleInfo[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das cmdlet Remove-Module entfernt die Member eines Moduls, z. B. Cmdlets und Funktionen, aus der aktuellen Sitzung.
Wenn das Modul eine Assembly (.dll) enthält, werden alle Elemente, die von der Assembly implementiert werden, entfernt, die Assembly wird jedoch nicht entladen.
Dieses Cmdlet deinstalliert das Modul nicht oder löscht es nicht vom Computer. 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
Mit diesem Befehl werden alle Module aus der aktuellen Sitzung entfernt.
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')".
Mit diesem Befehl werden die BitsTransfer und PSDiagnostics Module aus der aktuellen Sitzung entfernt.
Der Befehl verwendet einen Pipelineoperator (|), um die Modulnamen an Remove-Modulezu senden. Es verwendet die Verbose allgemeinen Parameter, um detaillierte Informationen zu den entfernten Elementen zu erhalten.
Die Ausführliche Nachrichten zeigen die entfernten Elemente an. Die Nachrichten unterscheiden sich, da das BitsTransfer-Modul eine Assembly enthält, die ihre Cmdlets und ein geschachteltes Modul mit einer eigenen Assembly implementiert. Das PSDiagnostics-Modul enthält 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 parameter ModuleInfo, um das BitsTransfer-Modul zu entfernen.
Beispiel 5: Verwenden des OnRemove-Ereignisses
Beim Entfernen eines Moduls gibt es einen Ereignisauslöser durch das Modul, das es einem Modul ermöglicht, auf das Entfernen zu reagieren und eine Bereinigungsaufgabe auszuführen, z. B. das Freigeben von Ressourcen.
$OnRemoveScript = {
# perform cleanup
$cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
$registerEngineEventSplat = @{
SourceIdentifier = ([System.Management.Automation.PSEngineEvent]::Exiting)
Action = $OnRemoveScript
}
Register-EngineEvent @registerEngineEventSplat
Die $OnRemoveScript Variable enthält den Skriptblock, der die Ressourcen bereinigt. Sie registrieren den Skriptblock, indem Sie ihn $ExecutionContext.SessionState.Module.OnRemovezuweisen. Sie können auch Register-EngineEvent verwenden, um den Skriptblock auszuführen, wenn die PowerShell-Sitzung endet.
Bei skriptbasierten Modulen fügen Sie diesen Code der .psm1-Datei hinzu oder fügen ihn in ein Startskript ein, das in der eigenschaft ScriptsToProcess des Modulmanifests aufgeführt ist.
Parameter
-Confirm
Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | vgl |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Force
Gibt an, dass dieses Cmdlet schreibgeschützte Module entfernt. Standardmäßig entfernt Remove-Module nur Lese-/Schreibzugriffsmodule.
Die werte ReadOnly und ReadWrite werden in AccessMode--Eigenschaft eines Moduls gespeichert.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-FullyQualifiedName
Der Wert kann ein Modulname, eine vollständige Modulspezifikation oder ein Pfad zu einer Moduldatei sein.
Wenn der Wert ein Pfad ist, kann der Pfad vollqualifizierte oder relativ sein. Ein relativer Pfad wird relativ zum Skript aufgelöst, das die using-Anweisung enthält.
Wenn es sich bei dem Wert um einen Namen oder eine Modulspezifikation handelt, durchsucht PowerShell die PSModulePath- nach dem angegebenen Modul.
Eine Modulspezifikation ist eine Hashtabelle mit den folgenden Schlüsseln.
-
ModuleName- Erforderlicher Gibt den Modulnamen an. -
GUID- Optionaler Gibt die GUID des Moduls an. - Außerdem Erforderlicher, um mindestens einen der drei folgenden Tasten anzugeben.
-
ModuleVersion– Gibt eine akzeptable Mindestversion des Moduls an. -
MaximumVersion– Gibt die maximal zulässige Version des Moduls an. -
RequiredVersion– Gibt eine genaue, erforderliche Version des Moduls an. Dies kann nicht mit den anderen Versionsschlüsseln verwendet werden.
-
Parametereigenschaften
| Typ: | |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
FullyQualifiedName
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-ModuleInfo
Gibt die zu entfernenden Modulobjekte an. Geben Sie eine Variable ein, die ein PSModuleInfo-objekt oder einen Befehl enthält, der ein Modulobjekt abruft, z. B. einen Get-Module-Befehl. Sie können modulobjekte auch an Remove-Modulepfeifen.
Parametereigenschaften
| Typ: | |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ModuleInfo
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Name
Gibt die Namen der zu entfernenden Module an. Platzhalterzeichen sind zulässig. Sie können auch Zeichenfolgen an Remove-Moduleübergeben.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
name
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Wi |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
String
Sie können einen Modulnamen an dieses Cmdlet weiterleiten.
PSModuleInfo
Sie können ein Modulobjekt an dieses Cmdlet weiterleiten.
Ausgaben
None
Dieses Cmdlet gibt keine Ausgabe zurück.
Hinweise
PowerShell enthält die folgenden Aliase für Remove-Module:
- Alle Plattformen:
rmo
Wenn Sie ein Modul entfernen, wird ein Ereignis ausgelöst, das zum Ausführen eines Bereinigungscodes verwendet werden kann. Weitere Informationen finden Sie unter Beispiel 5.