Sdílet prostřednictvím


Remove-Module

Odebere moduly z aktuální relace.

Syntaxe

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

Description

Rutina Remove-Module odebere členy modulu, jako jsou rutiny a funkce, z aktuální relace.

Pokud modul obsahuje sestavení (.dll), odeberou se všechny členy implementované sestavením, ale sestavení se nenačte.

Tato rutina modul neodinstaluje ani neodstraní z počítače. Ovlivňuje pouze aktuální relaci PowerShellu.

Příklady

Příklad 1: Odebrání modulu

Remove-Module -Name "BitsTransfer"

Tento příkaz odebere modul BitsTransfer z aktuální relace.

Příklad 2: Odebrání všech modulů

Get-Module | Remove-Module

Tento příkaz odebere všechny moduly z aktuální relace.

Příklad 3: Odebrání modulů pomocí kanálu

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

Tento příkaz odebere moduly BitsTransfer a PSDiagnostics z aktuální relace.

Příkaz používá operátor kanálu (|) k odeslání názvů modulů .Remove-Module Pomocí podrobného běžného parametru získáte podrobné informace o odebraných členech.

Podrobné zprávy zobrazují položky, které jsou odebrány. Zprávy se liší, protože modul BitsTransfer obsahuje sestavení, které implementuje jeho rutiny a vnořený modul s vlastním sestavením. Modul PSDiagnostics obsahuje soubor skriptu modulu (.psm1), který exportuje funkce.

Příklad 4: Odebrání modulu pomocí ModuleInfo

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

Tento příkaz používá moduleInfo parametr k odebrání modulu BitsTransfer.

Příklad 5: Použití události OnRemove

Když modul odeberete, modul aktivuje událost, která umožňuje, aby modul reagoval na odebrání a provedl určitou úlohu čištění, například uvolnění prostředků.

$OnRemoveScript = {
    # perform cleanup
    $cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript

$registerEngineEventSplat = @{
    SourceIdentifier = ([System.Management.Automation.PsEngineEvent]::Exiting)
    Action = $OnRemoveScript
}
Register-EngineEvent @registerEngineEventSplat

Proměnná $OnRemoveScript obsahuje blok skriptu, který prostředky vyčistí. Blok skriptu zaregistrujete tak, že ho $ExecutionContext.SessionState.Module.OnRemovepřiřadíte . Můžete také použít Register-EngineEvent k provedení bloku skriptu při ukončení relace PowerShellu.

V případě modulů založených na skriptech byste tento kód přidali do souboru nebo ho umístili do .PSM1 spouštěcího skriptu, který je uveden ve vlastnosti ScriptsToProcess manifestu modulu.

Parametry

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Force

Označuje, že tato rutina odebere moduly jen pro čtení. Ve výchozím nastavení Remove-Module odebere pouze moduly pro čtení i zápis.

Hodnoty ReadOnly a ReadWrite jsou uloženy ve vlastnosti AccessMode modulu.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-FullyQualifiedName

Hodnota může být název modulu, úplná specifikace modulu nebo cesta k souboru modulu.

Pokud je hodnota cesta, může být cesta plně kvalifikovaná nebo relativní. Relativní cesta je vyřešena vzhledem ke skriptu, který obsahuje příkaz using.

Pokud je hodnota název nebo specifikace modulu, PowerShell vyhledá zadaný modul v psModulePath .

Specifikace modulu je hashovatelná tabulka s následujícími klíči.

  • ModuleName - Povinný argument Určuje název modulu.
  • GUID - Volitelné určuje identifikátor GUID modulu.
  • Je také povinné zadat aspoň jeden ze tří následujících klíčů.
    • ModuleVersion – Určuje minimální přijatelnou verzi modulu.
    • MaximumVersion – Určuje maximální přijatelnou verzi modulu.
    • RequiredVersion – Určuje přesnou požadovanou verzi modulu. Tuto možnost nelze použít s jinými klíči verze.
Typ:ModuleSpecification[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-ModuleInfo

Určuje objekty modulu, které se mají odebrat. Zadejte proměnnou obsahující objekt PSModuleInfo nebo příkaz, který získá objekt modulu, například Get-Module příkaz. Objekty modulu můžete také pipetovat do Remove-Module.

Typ:PSModuleInfo[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Name

Určuje názvy modulů, které se mají odebrat. Jsou povoleny zástupné znaky. Můžete také názvové řetězce kanálu do Remove-Module.

Typ:String[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:True

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina se nespustí.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

String

Do této rutiny můžete připojit název modulu.

PSModuleInfo

Objekt modulu můžete do této rutiny převést.

Výstupy

None

Tato rutina nevrátí žádný výstup.

Poznámky

PowerShell obsahuje následující aliasy pro Remove-Module:

  • Všechny platformy:
    • rmo

Když modul odeberete, aktivuje se událost, která se dá použít ke spuštění nějakého kódu čištění. Další podrobnosti najdete v příkladu 5.