Freigeben über


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 Baugruppe (.dll) enthält, werden alle Varianten, die von der Baugruppe implementiert werden, entfernt, die Baugruppe 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.

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

Gibt die vollqualifizierten Namen der zu entfernenden Module an.

Parametereigenschaften

Typ:

ModuleSpecification[]

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 Modulobjekt (PSModuleInfo) oder einen Befehl zum Abrufen eines Modulobjekts enthält, z. B. einen Get-Module Befehl. Sie können modulobjekte auch an Remove-Modulepfeifen.

Parametereigenschaften

Typ:

PSModuleInfo[]

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

System.String, System.Management.Automation.PSModuleInfo

Sie können Modulnamen und Modulobjekte über die Pipeline an Remove-Module.

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 das Entfernen zu reagieren und eine Bereinigung durchzuführen, z. B. das Freigeben von Ressourcen. Beispiel:

$OnRemoveScript = {

# Bereinigung durchführen

$cachedSessions | Remove-PSSession

}

$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript

Für eine vollständige Konsistenz kann es auch sinnvoll sein, auf das Schließen des PowerShell-Prozesses zu reagieren:

Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Beenden) -Action $OnRemoveScript