Remove-Module
Supprime les 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 de commande Remove-Module
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
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 Verbose commun pour obtenir des informations détaillées sur les membres supprimés.
Les messages détaillé 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 variable $OnRemoveScript
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 fichier .PSM1
ou le placer dans un script de démarrage répertorié dans la propriété ScriptsToProcess du manifeste du module.
Paramètres
-Confirm
Vous invite à confirmer 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
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 le PSModulePath
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 obligatoire pour 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 commande Get-Module
. 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
Affiche ce qui se passerait si l’applet de commande s’exécute. 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 aucune 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 Exemple 5.