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

Este cmdlet não desinstala o módulo nem o apaga 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 os módulos BitsTransfer e PSDiagnostics da sessão atual.

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

As mensagens Verbose mostram os itens que foram removidos. As mensagens diferem porque o módulo BitsTransfer inclui um assembly que implementa os seus cmdlets e um módulo aninhado com o seu próprio assembly. O módulo PSDiagnostics inclui um ficheiro de script do módulo (.psm1) que exporta funções.

Exemplo 4: Remover um módulo usando o ModuleInfo

$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a

Este comando utiliza o parâmetro ModuleInfo para remover o módulo BitsTransfer.

Exemplo 5: Usar o evento OnRemove

Ao remover um módulo, existe um evento desencadeado pelo módulo que permite ao módulo reagir à remoção e realizar alguma tarefa de limpeza, como libertar 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 scripts que limpa os recursos. Registas o bloco de script atribuindo-o a $ExecutionContext.SessionState.Module.OnRemove. Também podes usar Register-EngineEvent para que o bloco de scripts seja executado quando a sessão PowerShell termina.

Para módulos baseados em scripts, adicionarias este código ao .psm1 ficheiro ou colocavas-no num script de arranque 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 este cmdlet remove módulos de apenas leitura. Por defeito, Remove-Module remove apenas módulos de leitura-escrita.

Os valores de Apenas Leitura e LeituraEscrita são armazenados na 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 do módulo a remover. Introduza uma variável que contenha um objeto PSModuleInfo ou um comando que recebe um objeto módulo, como um Get-Module comando. Também podes canalizar objetos 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 remover. Caracteres coringa são permitidos. Também pode nomear as cadeias 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

Podes canalizar um nome de módulo para este cmdlet.

PSModuleInfo

Podes canalizar um objeto 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 removes um módulo, é ativado um evento que pode ser usado para executar algum código de limpeza. Para mais detalhes, veja o Exemplo 5.