Remove-Module

Rimuove moduli dalla sessione corrente.

Sintassi

Remove-Module
      [-Name] <String[]>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Module
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Module
      [-ModuleInfo] <PSModuleInfo[]>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Descrizione

Il Remove-Module cmdlet rimuove i membri di un modulo, ad esempio cmdlet e funzioni, dalla sessione corrente.

Se il modulo include un assembly (.dll), tutti i membri implementati dall'assembly vengono rimossi, ma l'assembly non viene scaricato.

Questo cmdlet non disinstalla il modulo o lo elimina dal computer. Influisce solo sulla sessione di PowerShell corrente.

Esempio

Esempio 1: Rimuovere un modulo

Remove-Module -Name "BitsTransfer"

Questo comando rimuove il modulo BitsTransfer dalla sessione corrente.

Esempio 2: Rimuovere tutti i moduli

Get-Module | Remove-Module

Questo comando rimuove tutti i moduli dalla sessione corrente.

Esempio 3: Rimuovere i moduli usando la 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')".

Questo comando rimuove i moduli BitsTransfer e PSDiagnostics dalla sessione corrente.

Il comando usa un operatore pipeline (|) per inviare i nomi dei moduli a Remove-Module. Usa il parametro comune Verbose per ottenere informazioni dettagliate sui membri rimossi.

I messaggi dettagliati mostrano gli elementi rimossi. I messaggi sono diversi perché il modulo BitsTransfer include un assembly che implementa i relativi cmdlet e un modulo annidato con il proprio assembly. Il modulo PSDiagnostics include un file di script del modulo (.psm1) che esporta le funzioni.

Esempio 4: Rimuovere un modulo con ModuleInfo

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

Questo comando usa il parametro ModuleInfo per rimuovere il modulo BitsTransfer.

Esempio 5: Utilizzo dell'evento OnRemove

Quando si rimuove un modulo, è presente un trigger di evento dal modulo che consente a un modulo di reagire e di eseguire alcune attività di pulizia, ad esempio liberando risorse.

$OnRemoveScript = {
    # perform cleanup
    $cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript

$registerEngineEventSplat = @{
    SourceIdentifier = ([System.Management.Automation.PsEngineEvent]::Exiting)
    Action = $OnRemoveScript
}
Register-EngineEvent @registerEngineEventSplat

La $OnRemoveScript variabile contiene il blocco di script che pulisce le risorse. Per registrare il blocco di script, assegnarlo a $ExecutionContext.SessionState.Module.OnRemove. È anche possibile usare Register-EngineEvent per fare in modo che il blocco di script venga eseguito al termine della sessione di PowerShell.

Per i moduli basati su script, è necessario aggiungere questo codice al .PSM1 file o inserirlo in uno script di avvio elencato nella proprietà ScriptsToProcess del manifesto del modulo.

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Indica che questo cmdlet rimuove i moduli di sola lettura. Per impostazione predefinita, Remove-Module rimuove solo i moduli di lettura/scrittura.

I valori ReadOnly e ReadWrite vengono archiviati nella proprietà AccessMode di un modulo.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedName

Il valore può essere un nome di modulo, una specifica completa del modulo o un percorso di un file di modulo.

Quando il valore è un percorso, il percorso può essere completo o relativo. Un percorso relativo viene risolto rispetto allo script che contiene l'istruzione using.

Quando il valore è un nome o una specifica del modulo, PowerShell cerca il modulo specificato in PSModulePath .

Una specifica del modulo è una tabella hash con le chiavi seguenti.

  • ModuleName - Obbligatorio Specifica il nome del modulo.
  • GUID - Facoltativo Specifica il GUID del modulo.
  • È anche obbligatorio specificare almeno una delle tre chiavi seguenti.
    • ModuleVersion - Specifica una versione minima accettabile del modulo.
    • MaximumVersion - Specifica la versione massima accettabile del modulo.
    • RequiredVersion - Specifica una versione esatta e obbligatoria del modulo. Non è possibile usare questa opzione con le altre chiavi di versione.
Type:ModuleSpecification[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ModuleInfo

Specifica gli oggetti modulo da rimuovere. Immettere una variabile contenente un oggetto PSModuleInfo o un comando che ottiene un oggetto modulo, ad esempio un Get-Module comando. È anche possibile inviare tramite pipe gli oggetti modulo a Remove-Module.

Type:PSModuleInfo[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Specifica i nomi dei moduli da rimuovere. I caratteri jolly sono consentiti. È anche possibile inviare tramite pipe le stringhe dei nomi a Remove-Module.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

String

È possibile inviare tramite pipe un nome di modulo a questo cmdlet.

PSModuleInfo

È possibile inviare tramite pipe un oggetto modulo a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.

Note

PowerShell include gli alias seguenti per Remove-Module:

  • Tutte le piattaforme:
    • rmo

Quando si rimuove un modulo, viene attivato un evento che può essere usato per eseguire codice di pulizia. Per altri dettagli, vedere Esempio 5.