Remove-Module
Remove módulos da sessão atual.
Sintaxe
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
O cmdlet Remove-Module remove os membros de um módulo, como cmdlets e funções, da sessão atual.
Se o módulo incluir um assembly (.dll), todos os membros implementados pelo assembly serão removidos, mas o assembly não será descarregado.
Esse cmdlet não desinstala o módulo nem o exclui do computador. Afeta apenas a sessão atual do PowerShell.
Exemplos
Exemplo 1: remover um módulo
Remove-Module -Name "BitsTransfer"
Esse comando remove o módulo BitsTransfer da sessão atual.
Exemplo 2: remover todos os módulos
Get-Module | Remove-Module
Esse comando remove todos os módulos da sessão atual.
Exemplo 3: remover módulos usando o pipeline
"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')".
Esse comando remove os módulos BitsTransfer e PSDiagnostics da sessão atual.
O comando usa um operador de pipeline (|) para enviar os nomes de módulo para Remove-Module. Ele usa o parâmetro verbose comum para obter informações detalhadas sobre os membros removidos.
As mensagens detalhadas
Exemplo 4: remover um módulo usando ModuleInfo
$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a
Esse comando usa o parâmetro ModuleInfo para remover o módulo BitsTransfer.
Parâmetros
-Confirm
Solicita a confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Force
Indica que esse cmdlet remove módulos somente leitura. Por padrão, Remove-Module remove apenas módulos de leitura/gravação.
Os valores ReadOnly
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-FullyQualifiedName
Especifica os nomes totalmente qualificados dos módulos a serem removidos.
Tipo: | ModuleSpecification[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-ModuleInfo
Especifica os objetos do módulo a serem removidos. Insira uma variável que contém um objeto de módulo (PSModuleInfo) ou um comando que obtém um objeto de módulo, como um comando Get-Module. Você também pode canalizar objetos de módulo para Remove-Module.
Tipo: | PSModuleInfo[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Name
Especifica os nomes dos módulos a serem removidos. Caracteres curinga são permitidos. Você também pode canalizar cadeias de caracteres de nome para remove-module.
Tipo: | String[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
System.String, System.Management.Automation.PSModuleInfo
Você pode canalizar nomes de módulo e objetos de módulo para Remove-Module.
Saídas
None
Esse cmdlet não gera nenhuma saída.
Observações
Ao remover um módulo, há um evento no módulo que será executado. Esse evento permite que um módulo reaja à remoção e execute alguma limpeza, como liberar recursos. Exemplo:
$OnRemoveScript = {
# executar a limpeza
$cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
Para obter consistência total, também pode ser útil reagir ao fechamento do processo do PowerShell:
Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Action $OnRemoveScript