Remove-Module
Quita módulos de la sesión actual.
Sintaxis
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
El Remove-Module
cmdlet quita los miembros de un módulo, como cmdlets y funciones, de la sesión actual.
Si el módulo incluye un ensamblado (.dll
), se quitan todos los miembros implementados por el ensamblado, pero el ensamblado no se descarga.
Este cmdlet no desinstala el módulo ni lo elimina del equipo. Afecta solo a la sesión actual de PowerShell.
Ejemplos
Ejemplo 1: Quitar un módulo
Remove-Module -Name "BitsTransfer"
Este comando quita el módulo BitsTransfer de la sesión actual.
Ejemplo 2: Eliminación de todos los módulos
Get-Module | Remove-Module
Este comando quita todos los módulos de la sesión actual.
Ejemplo 3: Eliminación de módulos mediante la canalización
"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 quita los módulos BitsTransfer y PSDiagnostics de la sesión actual.
El comando usa un operador de canalización (|
) para enviar los nombres de módulo a Remove-Module
. Usa el parámetro común Detallado para obtener información detallada sobre los miembros que se quitan.
Los mensajes detallados muestran los elementos que se quitan. Los mensajes son distintos porque el módulo BitsTransfer incluye un ensamblado que implementa sus cmdlets y un módulo anidado con su propio ensamblado. El módulo PSDiagnostics incluye un archivo de script de módulo (.psm1
) que exporta funciones.
Ejemplo 4: Eliminación de un módulo mediante ModuleInfo
$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a
Este comando usa el parámetro ModuleInfo para quitar el módulo BitsTransfer.
Ejemplo 5: Uso del evento OnRemove
Al quitar un módulo, el módulo desencadena un evento que permite que un módulo reaccione a la eliminación y realice alguna tarea de limpieza, 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
La $OnRemoveScript
variable contiene el bloque de script que limpia los recursos. Para registrar el bloque de script, asígnelo a $ExecutionContext.SessionState.Module.OnRemove
. También puede usar Register-EngineEvent
para que el bloque de script se ejecute cuando finalice la sesión de PowerShell.
En el caso de los módulos basados en scripts, agregaría este código al .PSM1
archivo o lo colocaría en un script de inicio que aparece en la propiedad ScriptsToProcess del manifiesto del módulo.
Parámetros
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Force
Indica que este cmdlet quita los módulos de solo lectura. De forma predeterminada, Remove-Module
quita solo los módulos de lectura y escritura.
Los valores ReadOnly y ReadWrite se almacenan en la propiedad AccessMode de un módulo.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-FullyQualifiedName
El valor puede ser un nombre de módulo, una especificación de módulo completa o una ruta de acceso a un archivo de módulo.
Cuando el valor es una ruta de acceso, la ruta de acceso puede ser completa o relativa. Se resuelve una ruta de acceso relativa con respecto al script que contiene la instrucción using.
Cuando el valor es un nombre o especificación de módulo, PowerShell busca en el módulo especificado la psModulePath .
Una especificación de módulo es una tabla hash que tiene las siguientes claves.
ModuleName
- Obligatorio Especifica el nombre del módulo.GUID
- Opcional Especifica el GUID del módulo.- También es necesario especificar al menos una de las tres claves siguientes.
ModuleVersion
: especifica una versión mínima aceptable del módulo.MaximumVersion
: especifica la versión máxima aceptable del módulo.RequiredVersion
: especifica una versión exacta y necesaria del módulo. Esto no se puede usar con las otras claves de versión.
Tipo: | ModuleSpecification[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-ModuleInfo
Especifica los objetos de módulo que se van a quitar. Escriba una variable que contenga un objeto PSModuleInfo o un comando que obtenga un objeto de módulo, como un Get-Module
comando. También puede canalizar objetos de módulo a Remove-Module
.
Tipo: | PSModuleInfo[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Name
Especifica los nombres de los módulos que se van a eliminar. Se permite el uso de caracteres comodín. También puede canalizar cadenas de nombre a Remove-Module
.
Tipo: | String[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | True |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.
Tipo: | SwitchParameter |
Alias: | wi |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar un nombre de módulo a este cmdlet.
Puede canalizar un objeto de módulo a este cmdlet.
Salidas
None
Este cmdlet no devuelve ningún resultado.
Notas
Windows PowerShell incluye los siguientes alias para Remove-Module
:
rmo
Al quitar un módulo, se desencadena un evento que se puede usar para ejecutar código de limpieza. Para obtener más información, vea Ejemplo 5.