Remove-Module
Supprime des modules de la session active.
Syntaxe
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
L’applet Remove-Module
de commande supprime les membres d’un module, tels que les applets de commande et les fonctions, de la session active.
Si le module inclut un assembly (.dll
), tous les membres implémentés par l’assembly sont supprimés, mais l’assembly n’est pas déchargé.
Cette applet de commande ne désinstalle pas le module ni ne le supprime de l’ordinateur. Elle affecte uniquement la session PowerShell actuelle.
Exemples
Exemple 1 : Supprimer un module
Remove-Module -Name "BitsTransfer"
Cette commande supprime le module BitsTransfer de la session active.
Exemple 2 : Supprimer tous les modules
Get-Module | Remove-Module
Cette commande supprime tous les modules de la session active.
Exemple 3 : Supprimer des modules à l’aide du 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')".
Cette commande supprime les modules BitsTransfer et PSDiagnostics de la session active.
La commande utilise un opérateur de pipeline (|
) pour envoyer les noms de module à Remove-Module
. Il utilise le paramètre commun Verbose pour obtenir des informations détaillées sur les membres supprimés.
Les messages détaillés affichent les éléments supprimés. Les messages diffèrent car le module BitsTransfer inclut un assembly qui implémente ses applets de commande et un module imbriqué avec son propre assembly. Le module PSDiagnostics inclut un fichier de script de module (.psm1
) qui exporte des fonctions.
Exemple 4 : Supprimer un module à l’aide de ModuleInfo
$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a
Cette commande utilise le paramètre ModuleInfo pour supprimer le module BitsTransfer.
Exemple 5 : Utilisation de l’événement OnRemove
Lors de la suppression d’un module, il existe un déclencheur d’événement par le module qui permet à un module de réagir à la suppression et d’effectuer une tâche de nettoyage, telle que la libération des ressources.
$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 contient le bloc de script qui nettoie les ressources. Vous inscrivez le bloc de script en l’affectant à $ExecutionContext.SessionState.Module.OnRemove
. Vous pouvez également utiliser Register-EngineEvent
pour que le bloc de script s’exécute lorsque la session PowerShell se termine.
Pour les modules basés sur des scripts, vous devez ajouter ce code au .PSM1
fichier ou le placer dans un script de démarrage répertorié dans la propriété ScriptsToProcess du manifeste du module.
Paramètres
-Confirm
Vous demande une confirmation avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Force
Indique que cette applet de commande supprime les modules en lecture seule. Par défaut, Remove-Module
supprime uniquement les modules en lecture-écriture.
Les valeurs ReadOnly et ReadWrite sont stockées dans la propriété AccessMode d’un module.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-FullyQualifiedName
La valeur peut être un nom de module, une spécification complète du module ou un chemin d’accès à un fichier de module.
Lorsque la valeur est un chemin d’accès, le chemin d’accès peut être qualifié ou relatif complet. Un chemin relatif est résolu par rapport au script qui contient l’instruction using.
Lorsque la valeur est un nom ou une spécification de module, PowerShell recherche PSModulePath pour le module spécifié.
Une spécification de module est une table de hachage qui a les clés suivantes.
ModuleName
- Obligatoire Spécifie le nom du module.GUID
- Facultatif Spécifie le GUID du module.- Il est également nécessaire de spécifier au moins l’une des trois clés ci-dessous.
ModuleVersion
- Spécifie une version minimale acceptable du module.MaximumVersion
- Spécifie la version maximale acceptable du module.RequiredVersion
- Spécifie une version exacte et requise du module. Cela ne peut pas être utilisé avec les autres clés de version.
Type: | ModuleSpecification[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-ModuleInfo
Spécifie les objets de module à supprimer. Entrez une variable qui contient un objet PSModuleInfo ou une commande qui obtient un objet de module, tel qu’une Get-Module
commande. Vous pouvez également diriger des objets de module vers Remove-Module
.
Type: | PSModuleInfo[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Name
Spécifie les noms des modules à supprimer. Les caractères génériques sont autorisés. Vous pouvez également diriger des chaînes de nom vers Remove-Module
.
Type: | String[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | True |
-WhatIf
Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger un nom de module vers cette applet de commande.
Vous pouvez diriger un objet de module vers cette applet de commande.
Sorties
None
Cette applet de commande ne retourne pas de sortie.
Notes
PowerShell inclut les alias suivants pour Remove-Module
:
- Toutes les plateformes :
rmo
Lorsque vous supprimez un module, un événement est déclenché qui peut être utilisé pour exécuter du code de nettoyage. Pour plus d’informations, consultez l’exemple 5.