Remove-Module
Remove módulos da sessão atual.
Syntax
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 Remove-Module
cmdlet 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. Ele 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
Este 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 comum Verbose para obter informações detalhadas sobre os membros que serão removidos.
As mensagens detalhadas mostram os itens removidos. As mensagens são diferentes porque o módulo BitsTransfer inclui um assembly que implementa seus cmdlets e um módulo aninhado com seu próprio assembly. O módulo PSDiagnostics inclui um arquivo de script de módulo (.psm1
) que exporta funções.
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.
Exemplo 5: Usando o evento OnRemove
Ao remover um módulo, há um gatilho de evento pelo módulo que permite que um módulo reaja à remoção e execute algumas tarefas de limpeza, como liberar recursos.
$OnRemoveScript = {
# perform cleanup
$cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
$registerEngineEventSplat = @{
SourceIdentifier = ([System.Management.Automation.PsEngineEvent]::Exiting)
Action = $OnRemoveScript
}
Register-EngineEvent @registerEngineEventSplat
A $OnRemoveScript
variável contém o bloco de script que limpa os recursos. Registre o bloco de script atribuindo-o a $ExecutionContext.SessionState.Module.OnRemove
. Você também pode usar Register-EngineEvent
para que o bloco de script seja executado quando a sessão do PowerShell terminar.
Para módulos baseados em script, você adicionaria esse código ao arquivo ou o .PSM1
colocaria em um script de inicialização listado na propriedade ScriptsToProcess do manifesto do módulo.
Parâmetros
-Confirm
Solicita sua confirmação antes de executar o cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 e ReadWrite são armazenados na propriedade AccessMode de um módulo.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FullyQualifiedName
O valor pode ser um nome de módulo, uma especificação completa do módulo ou um caminho para um arquivo de módulo.
Quando o valor é um caminho, o caminho pode ser totalmente qualificado ou relativo. Um caminho relativo é resolvido em relação ao script que contém a instrução using.
Quando o valor é uma especificação de nome ou módulo, o PowerShell pesquisa o PSModulePath para o módulo especificado.
Uma especificação de módulo é uma tabela de hash que tem as chaves a seguir.
ModuleName
- Necessário Especifica o nome do módulo.GUID
- Opcional Especifica o GUID do módulo.- Também é necessário especificar pelo menos uma das três chaves abaixo.
ModuleVersion
– Especifica uma versão mínima aceitável do módulo.MaximumVersion
– Especifica a versão máxima aceitável do módulo.RequiredVersion
– Especifica uma versão exata e necessária do módulo. Isso não pode ser usado com as outras chaves de versão.
Type: | ModuleSpecification[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ModuleInfo
Especifica os objetos do módulo a ser removido. Insira uma variável que contenha um objeto PSModuleInfo ou um comando que obtém um objeto de módulo, como um Get-Module
comando. Você também pode redirecionar objetos de módulo para Remove-Module
.
Type: | PSModuleInfo[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Especifica os nomes dos módulos a serem removidos. Caracteres curinga são permitidos. Você também pode redirecionar cadeias de caracteres de nome para Remove-Module
.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Você pode redirecionar um nome de módulo para esse cmdlet.
Você pode redirecionar um objeto de módulo para este cmdlet.
Saídas
None
Esse cmdlet não retorna nenhuma saída.
Observações
O PowerShell inclui os seguintes aliases para Remove-Module
:
- Todas as plataformas:
rmo
Quando você remove um módulo, é disparado um evento que pode ser usado para executar algum código de limpeza. Para obter mais detalhes, consulte Exemplo 5.