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ů do Remove-Module. Používá Podrobný společný parametr k získání podrobných informací o odebraných členech.

Zprávy Podrobné zobrazují odebrané položky. 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á k odebrání modulu BitsTransfer parametr ModuleInfo.

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 přiřadíte $ExecutionContext.SessionState.Module.OnRemove. Můžete také použít Register-EngineEvent k tomu, aby se blok skriptu spustil při ukončení relace PowerShellu.

Pro moduly založené na skriptech byste tento kód přidali do .PSM1 souboru nebo ho umístili do spouštěcího skriptu, který je uveden v ScriptsToProcess vlastnost manifestu modulu.

Parametry

-Confirm

Před spuštěním rutiny vás vyzve 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 readWrite ReadOnly a ReadWrite se ukládají 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 prohledá PSModulePath zadaného modulu.

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

  • ModuleName - Povinný Určuje název modulu.
  • GUID - Volitelné Určuje identifikátor GUID modulu.
  • Je také Povinné zadat aspoň jeden z následujících tří 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, která obsahuje PSModuleInfo objekt nebo příkaz, který získá objekt modulu, například příkaz Get-Module. 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 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

Ukazuje, co se stane, když se rutina spustí. 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.