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.OnRemove
př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
Do této rutiny můžete připojit název modulu.
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.