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