Remove-Module

Supprime des modules de la session active.

Syntax

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 et ne le supprime pas non plus de l'ordinateur. Elle affecte uniquement la session PowerShell active.

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 des modules à Remove-Module. Elle utilise le paramètre commun Verbose pour obtenir des informations détaillées sur les membres qui sont supprimés.

Les messages détaillés affichent les éléments qui sont 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 les 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.

Paramètres

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedName

Spécifie les noms complets des modules à supprimer.

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

-ModuleInfo

Spécifie les objets de module à supprimer. Entrez une variable qui contient un objet de module (PSModuleInfo) ou une commande qui obtient un objet de module, tel qu’une Get-Module commande. Vous pouvez également diriger les objets de module vers Remove-Module.

Type:PSModuleInfo[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 noms vers Remove-Module.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

System.String, System.Management.Automation.PSModuleInfo

Vous pouvez diriger les noms de module et les objets de module vers Remove-Module.

Sorties

None

Cette applet de commande ne génère aucune sortie.

Notes

Lors de la suppression d’un module, il existe un événement sur le module qui s’exécute. Cet événement permet à un module de réagir à la suppression et d’effectuer un nettoyage, comme libérer des ressources. Exemple :

$OnRemoveScript = {

# effectuer le nettoyage

$cachedSessions | Remove-PSSession

}

$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript

Pour une cohérence complète, il peut également être utile de réagir à la fermeture du processus PowerShell :

Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Action $OnRemoveScript