Udostępnij przez


Remove-Module

Usuwa moduły z bieżącej sesji.

Składnia

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>]

Opis

Polecenie cmdlet Remove-Module 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 Verbose wspólnego parametru, aby uzyskać szczegółowe informacje o usuwanych elementach członkowskich.

Komunikaty pełne 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 funkcji ModuleInfo

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

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

Przykład 5. Używanie zdarzenia OnRemove

Podczas usuwania modułu wyzwalane jest zdarzenie, które 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 należy zarejestrować, przypisując go do $ExecutionContext.SessionState.Module.OnRemove. Można również użyć Register-EngineEvent polecenia , aby skryptblock był wykonywany po zakończeniu sesji programu PowerShell.

W przypadku modułów opartych na skryptach należy dodać ten kod do pliku .psm1 lub umieścić go w skryfcie uruchamiania wymienionym w scriptsToProcess właściwości manifestu modułu.

Parametry

-Confirm

Prosi o potwierdzenie przed uruchomieniem cmdletu.

Właściwości parametrów

Typ:SwitchParameter
Wartość domyślna:False
Wspiera dzikie karty:False
DontShow:False
Aliasy:por

Zbiory parametrów

(All)
Pozycja:Named
Obowiązkowy:False
Wartość z pipeline:False
Wartość z pipeline według nazwy właściwości:False
Wartość pozostałych argumentów: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 readWrite są przechowywane we właściwości AccessMode modułu.

Właściwości parametrów

Typ:SwitchParameter
Wartość domyślna:None
Wspiera dzikie karty:False
DontShow:False

Zbiory parametrów

(All)
Pozycja:Named
Obowiązkowy:False
Wartość z pipeline:False
Wartość z pipeline według nazwy właściwości:False
Wartość pozostałych argumentów: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 PSModulePath dla określonego modułu.

Specyfikacja modułu to tabela skrótu zawierająca 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 tego używać z innymi kluczami wersji.

Właściwości parametrów

Typ:

ModuleSpecification[]

Wartość domyślna:None
Wspiera dzikie karty:False
DontShow:False

Zbiory parametrów

FullyQualifiedName
Pozycja:0
Obowiązkowy:True
Wartość z pipeline:True
Wartość z pipeline według nazwy właściwości:False
Wartość pozostałych argumentów:False

-ModuleInfo

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

Właściwości parametrów

Typ:

PSModuleInfo[]

Wartość domyślna:None
Wspiera dzikie karty:False
DontShow:False

Zbiory parametrów

ModuleInfo
Pozycja:0
Obowiązkowy:True
Wartość z pipeline:True
Wartość z pipeline według nazwy właściwości:False
Wartość pozostałych argumentów:False

-Name

Określa nazwy modułów do usunięcia. Symbole wieloznaczne są dozwolone. Możesz również przekazać ciągi nazw potoku do Remove-Module.

Właściwości parametrów

Typ:

String[]

Wartość domyślna:None
Wspiera dzikie karty:True
DontShow:False

Zbiory parametrów

name
Pozycja:0
Obowiązkowy:True
Wartość z pipeline:True
Wartość z pipeline według nazwy właściwości:False
Wartość pozostałych argumentów:False

-WhatIf

Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie został uruchomiony.

Właściwości parametrów

Typ:SwitchParameter
Wartość domyślna:False
Wspiera dzikie karty:False
DontShow:False
Aliasy:Wi

Zbiory parametrów

(All)
Pozycja:Named
Obowiązkowy:False
Wartość z pipeline:False
Wartość z pipeline według nazwy właściwości:False
Wartość pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Wejścia

String

Możesz przekierować nazwę modułu do tego polecenia cmdlet.

PSModuleInfo

Do tego polecenia cmdlet można przekazać obiekt modułu.

Wyjść

None

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

Notatki

Program Windows PowerShell zawiera następujące aliasy dla Remove-Module:

  • rmo

Po usunięciu modułu zostanie wyzwolone zdarzenie, którego można użyć do uruchomienia kodu oczyszczania. Aby uzyskać więcej informacji, zobacz Example 5.