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-Module
elementu .
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