Remove-Module
Remove módulos da sessão atual.
Sintaxe
name
Remove-Module
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FullyQualifiedName
Remove-Module
[-FullyQualifiedName] <ModuleSpecification[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ModuleInfo
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
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 do módulo para Remove-Module
. Ele usa o parâmetro verbose comum para obter informações detalhadas sobre os membros removidos.
As mensagens Detalhadas mostram os itens que são 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 variável $OnRemoveScript
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 .psm1
ou o 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.
Propriedades do parâmetro
Tipo: | SwitchParameter |
Valor padrão: | False |
Dá suporte a curingas: | False |
DontShow: | False |
Aliases: | cf |
Conjuntos de parâmetros
(All)
Cargo: | Named |
Obrigatório: | False |
Valor do pipeline: | False |
Valor do pipeline pelo nome da propriedade: | False |
Valor dos argumentos restantes: | 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.
Propriedades do parâmetro
Tipo: | SwitchParameter |
Valor padrão: | None |
Dá suporte a curingas: | False |
DontShow: | False |
Conjuntos de parâmetros
(All)
Cargo: | Named |
Obrigatório: | False |
Valor do pipeline: | False |
Valor do pipeline pelo nome da propriedade: | False |
Valor dos argumentos restantes: | False |
-FullyQualifiedName
O valor pode ser um nome de módulo, uma especificação de módulo completa 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 com base no 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 é um hashtable que tem as seguintes chaves.
-
ModuleName
- necessário especifica o nome do módulo. -
GUID
- Opcional especifica o GUID do módulo. - Também é necessário para 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.
-
Propriedades do parâmetro
Tipo: | |
Valor padrão: | None |
Dá suporte a curingas: | False |
DontShow: | False |
Conjuntos de parâmetros
FullyQualifiedName
Cargo: | 0 |
Obrigatório: | True |
Valor do pipeline: | True |
Valor do pipeline pelo nome da propriedade: | False |
Valor dos argumentos restantes: | False |
-ModuleInfo
Especifica os objetos do módulo a serem removidos. Insira uma variável que contenha um objeto PSModuleInfo ou um comando que obtém um objeto de módulo, como um comando Get-Module
. Você também pode redirecionar objetos de módulo para Remove-Module
.
Propriedades do parâmetro
Tipo: | |
Valor padrão: | None |
Dá suporte a curingas: | False |
DontShow: | False |
Conjuntos de parâmetros
ModuleInfo
Cargo: | 0 |
Obrigatório: | True |
Valor do pipeline: | True |
Valor do pipeline pelo nome da propriedade: | False |
Valor dos argumentos restantes: | 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 nomes para Remove-Module
.
Propriedades do parâmetro
Tipo: | String[] |
Valor padrão: | None |
Dá suporte a curingas: | True |
DontShow: | False |
Conjuntos de parâmetros
name
Cargo: | 0 |
Obrigatório: | True |
Valor do pipeline: | True |
Valor do pipeline pelo nome da propriedade: | False |
Valor dos argumentos restantes: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Propriedades do parâmetro
Tipo: | SwitchParameter |
Valor padrão: | False |
Dá suporte a curingas: | False |
DontShow: | False |
Aliases: | wi |
Conjuntos de parâmetros
(All)
Cargo: | Named |
Obrigatório: | False |
Valor do pipeline: | False |
Valor do pipeline pelo nome da propriedade: | False |
Valor dos argumentos restantes: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
String
Você pode canalizar um nome de módulo para este cmdlet.
PSModuleInfo
Você pode canalizar 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.