Partilhar via


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 que são implementados pelo assembly são removidos, mas o assembly não é descarregado.

Este 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"

Este 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')".

Este comando remove o BitsTransfer e módulos PSDiagnostics da sessão atual.

O comando usa um operador de pipeline (|) para enviar os nomes dos módulos para Remove-Module. Ele usa o Verbose parâmetro comum para obter informações detalhadas sobre os membros que são removidos.

As mensagens detalhadas mostram os itens que foram 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

Este 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 ao ser removido e execute alguma tarefa 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. Você registra 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 confirmação antes de executar o cmdlet.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Cf.

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 em propriedade AccessMode de um módulo.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-FullyQualifiedName

O valor pode ser um nome de módulo, uma especificação de módulo completo 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 é um nome ou especificação de módulo, o PowerShell procura o módulo especificado PSModulePath.

Uma especificação de módulo é uma hashtable que tem as seguintes chaves.

  • ModuleName - Obrigatório Especifica o nome do módulo.
  • GUID - Opcional Especifica o GUID do módulo.
  • Também é Obrigató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.

Propriedades dos parâmetros

Tipo:

ModuleSpecification[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

FullyQualifiedName
Position:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-ModuleInfo

Especifica os objetos de módulo a serem removidos. Insira uma variável que contenha um objeto de PSModuleInfo ou um comando que obtenha um objeto module, como um comando Get-Module. Você também pode canalizar objetos de módulo para Remove-Module.

Propriedades dos parâmetros

Tipo:

PSModuleInfo[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

ModuleInfo
Position:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Name

Especifica os nomes dos módulos a serem removidos. Caracteres coringa são permitidos. Você também pode canalizar cadeias de caracteres de nome para Remove-Module.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

name
Position:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Wi

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 esse cmdlet.

PSModuleInfo

Você pode canalizar um objeto de módulo para este cmdlet.

Saídas

None

Este cmdlet não retorna nenhuma saída.

Notas

O PowerShell inclui os seguintes aliases para Remove-Module:

  • Todas as plataformas:
    • rmo

Quando você remove um módulo, há um evento é acionado que pode ser usado para executar algum código de limpeza. Para obter mais detalhes, consulte Exemplo 5.