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 członków modułu, takich jak polecenia cmdlet i funkcje, z bieżącej sesji.

Jeśli moduł zawiera zestaw (.dll), wszystkie elementy członkowskie implementowane 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 pełnego wspólnego parametru, aby uzyskać szczegółowe informacje o usuniętych elementach członkowskich.

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 funkcji 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 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żesz 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 skryfcie uruchamiania wymienionym we właściwości ScriptsToProcess manifestu modułu.

Parametry

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 element PSModulePath dla określonego modułu.

Specyfikacja modułu to tabela skrótu zawierająca następujące klucze.

  • ModuleName - Required Określa nazwę modułu.
  • GUID - Opcjonalnie Określa identyfikator GUID modułu.
  • Wymagane jest również określenie co najmniej jednego 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.
Typ:ModuleSpecification[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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ż przekazać potok obiektów modułu do Remove-Moduleelementu .

Typ:PSModuleInfo[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Name

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

Typ:String[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:True

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie jest uruchamiane.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

String

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

PSModuleInfo

Do tego polecenia cmdlet można przekazać 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 programu Remove-Module:

  • Wszystkie platformy:
    • 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 Przykład 5.