Partager via


Remove-Module

Supprime les modules de la session active.

Syntaxe

name

Remove-Module
    [-Name] <String[]>
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

FullyQualifiedName

Remove-Module
    [-FullyQualifiedName] <ModuleSpecification[]>
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ModuleInfo

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 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 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.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:cf

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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 ReadW rite sont stockées dans propriété AccessMode d’un module.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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 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 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.

Propriétés du paramètre

Type:

ModuleSpecification[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

FullyQualifiedName
Position:0
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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.

Propriétés du paramètre

Type:

PSModuleInfo[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ModuleInfo
Position:0
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

name
Position:0
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-WhatIf

Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:Wi

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

String

Vous pouvez diriger un nom de module vers cette applet de commande.

PSModuleInfo

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.