Compartilhar via


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 mostram os itens removidos. As mensagens diferem 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.

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 e readWrite são armazenados na propriedade AccessMode de um módulo.

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