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. Wpływa 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 pokazują usunięte elementy. Komunikaty różnią się, ponieważ moduł BitsTransfer zawiera zestaw, który implementuje 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 informacji o moduleInfo
$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a
To polecenie używa parametru ModuleInfo do usunięcia modułu BitsTransfer.
Przykład 5. Używanie zdarzenia OnRemove
Podczas usuwania modułu istnieje wyzwalacz zdarzenia przez moduł, który umożliwia modułowi reagowanie na usuwanie i wykonywanie niektórych zadań oczyszczania, takich jak zwalnianie zasobów.
$OnRemoveScript = {
# perform cleanup
$cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
$registerEngineEventSplat = @{
SourceIdentifier = ([System.Management.Automation.PsEngineEvent]::Exiting)
Action = $OnRemoveScript
}
Register-EngineEvent @registerEngineEventSplat
Zmienna $OnRemoveScript
zawiera blok skryptu, który czyści zasoby. Blok skryptu można zarejestrować, przypisując go do $ExecutionContext.SessionState.Module.OnRemove
. Można również użyć Register-EngineEvent
polecenia , aby blok skryptu był wykonywany po zakończeniu sesji programu PowerShell.
W przypadku modułów opartych na skryptach należy dodać ten kod do .PSM1
pliku lub umieścić go w skrycie startowym wymienionym we właściwości ScriptsToProcess manifestu modułu.
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
Wartość może być nazwą modułu, pełną specyfikacją modułu lub ścieżką do pliku modułu.
Gdy wartość jest ścieżką, ścieżka może być w pełni kwalifikowana lub względna. Ścieżka względna jest rozpoznawana względem skryptu zawierającego instrukcję using.
Gdy wartość jest nazwą lub specyfikacją modułu, program PowerShell przeszukuje parametr PSModulePath dla określonego modułu.
Specyfikacja modułu jest tabelą skrótu zawierającą następujące klucze.
ModuleName
- Wymagane Określa nazwę modułu.GUID
- Opcjonalne Określa identyfikator GUID modułu.- Jest to również wymagane , aby określić co najmniej jeden z trzech poniższych kluczy.
ModuleVersion
— Określa minimalną akceptowalną wersję modułu.MaximumVersion
- Określa maksymalną akceptowalną wersję modułu.RequiredVersion
— Określa dokładną, wymaganą wersję modułu. Nie można jej używać z innymi kluczami wersji.
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 PSModuleInfo lub polecenie, które pobiera obiekt modułu Get-Module
, na przykład polecenie. Możesz również potokować obiekty modułów do 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 jest uruchamiane.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Możesz przekazać do tego polecenia cmdlet nazwę modułu.
Możesz przekazać do tego polecenia cmdlet obiekt modułu.
Dane wyjściowe
None
To polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
Program PowerShell zawiera następujące aliasy dla Remove-Module
programu :
- Wszystkie platformy:
rmo
Po usunięciu modułu jest wyzwalane zdarzenie, które może służyć do uruchamiania kodu oczyszczania. Aby uzyskać więcej informacji, zobacz Przykład 5.