Udostępnij za pośrednictwem


Remove-Module

Usuwa moduły z bieżącej sesji.

Składnia

Remove-Module
      [-Name] <String[]>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Module
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Module
      [-ModuleInfo] <PSModuleInfo[]>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Opis

Polecenie Remove-Module cmdlet usuwa elementy członkowskie modułu, takie jak polecenia cmdlet i funkcje, z bieżącej sesji.

Jeśli moduł zawiera zestaw (.dll), wszystkie elementy członkowskie zaimplementowane przez zestaw zostaną usunięte, ale zestaw nie zostanie zwolniony.

To polecenie cmdlet nie powoduje odinstalowania modułu ani usunięcia go z komputera. Ma to wpływ tylko na bieżącą sesję programu PowerShell.

Przykłady

Przykład 1. Usuwanie modułu

Remove-Module -Name "BitsTransfer"

To polecenie usuwa moduł BitsTransfer z bieżącej sesji.

Przykład 2: Usuwanie wszystkich modułów

Get-Module | Remove-Module

To polecenie usuwa wszystkie moduły z bieżącej sesji.

Przykład 3. Usuwanie modułów przy użyciu potoku

"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')".

To polecenie usuwa moduły BitsTransfer i PSDiagnostics z bieżącej sesji.

Polecenie używa operatora potoku (|) do wysyłania nazw modułów do Remove-Module. Używa on wspólnego parametru Verbose , aby uzyskać szczegółowe informacje o elementach członkowskich, które są usuwane.

Pełne komunikaty zawierają usunięte elementy. Komunikaty różnią się, ponieważ moduł BitsTransfer zawiera zestaw, który implementuje jego polecenia cmdlet i zagnieżdżony moduł z własnym zestawem. Moduł PSDiagnostics zawiera plik skryptu modułu (.psm1), który eksportuje funkcje.

Przykład 4: Usuwanie modułu przy użyciu funkcji ModuleInfo

$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a

To polecenie używa parametru ModuleInfo do usunięcia modułu BitsTransfer.

Parametry

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Wskazuje, że to polecenie cmdlet usuwa moduły tylko do odczytu. Domyślnie Remove-Module usuwa tylko moduły odczytu i zapisu.

Wartości ReadOnly i ReadWrite są przechowywane we właściwości AccessMode modułu.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedName

Określa w pełni kwalifikowane nazwy modułów do usunięcia.

Type:ModuleSpecification[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ModuleInfo

Określa obiekty modułu do usunięcia. Wprowadź zmienną zawierającą obiekt modułu (PSModuleInfo) lub polecenie, które pobiera obiekt modułu Get-Module , takie jak polecenie. Możesz również przekazać potok obiektów modułu do elementu Remove-Module.

Type:PSModuleInfo[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Określa nazwy modułów do usunięcia. Dozwolone są symbole wieloznaczne. Ciągi nazw potoków można również przekazać do .Remove-Module

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

System.String, System.Management.Automation.PSModuleInfo

Nazwy modułów i obiekty modułów można przekazać potokom do Remove-Moduleelementu .

Dane wyjściowe

None

To polecenie cmdlet nie generuje żadnych danych wyjściowych.

Uwagi

Podczas usuwania modułu istnieje zdarzenie w module, które zostanie wykonane. To zdarzenie umożliwia modułowi reagowanie na usuwanie i wykonywanie czyszczenia, takich jak zwalnianie zasobów. Przykład:

$OnRemoveScript = {

# wykonaj oczyszczanie

$cachedSessions | Remove-PSSession

}

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

Aby zapewnić pełną spójność, przydatne może być również reagowanie na zamknięcie procesu programu PowerShell:

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