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.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | ModuleSpecification[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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
.
Tipo: | PSModuleInfo[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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
.
Tipo: | String[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | True |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe un nome di modulo a questo cmdlet.
È possibile inviare tramite pipe un oggetto modulo a questo cmdlet.
Output
None
Questo cmdlet non restituisce output.
Note
Windows PowerShell include gli alias seguenti per Remove-Module
:
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.