À propos des modulesAbout Modules

Description courteShort Description

Explique comment installer, importer et utiliser des modules PowerShell.Explains how to install, import, and use PowerShell modules.

Description longueLong Description

Un module est un package qui contient des commandes PowerShell, telles que des applets de commande, des fournisseurs, des fonctions, des workflows, des variables et des alias.A module is a package that contains PowerShell commands, such as cmdlets, providers, functions, workflows, variables, and aliases.

Les personnes qui écrivent des commandes peuvent utiliser des modules pour organiser leurs commandes et les partager avec d'autres utilisateurs.People who write commands can use modules to organize their commands and share them with others. Les personnes qui reçoivent des modules peuvent ajouter les commandes dans les modules à leurs sessions PowerShell et les utiliser comme les commandes intégrées.People who receive modules can add the commands in the modules to their PowerShell sessions and use them just like the built-in commands.

Cette rubrique explique comment utiliser les modules PowerShell.This topic explains how to use PowerShell modules. Pour plus d’informations sur l’écriture de modules PowerShell, consultez écriture d’un module PowerShell.For information about how to write PowerShell modules, see Writing a PowerShell Module.

Qu’est-ce qu’un module ?What Is a Module?

Un module est un package de commandes.A module is a package of commands. Toutes les applets de commande et tous les fournisseurs de votre session sont ajoutés par un module ou un composant logiciel enfichable.All cmdlets and providers in your session are added by a module or a snap-in.

Chargement automatique des modulesModule Auto-Loading

À compter de PowerShell 3,0, PowerShell importe automatiquement les modules la première fois que vous exécutez une commande dans un module installé.Beginning in PowerShell 3.0, PowerShell imports modules automatically the first time that you run any command in an installed module. Vous pouvez désormais utiliser les commandes d'un module sans même le configurer ni définir de profil. Une fois vos modules installés sur votre ordinateur, vous n'avez pas à vous en occuper.You can now use the commands in a module without any set-up or profile configuration, so there's no need to manage modules after you install them on your computer.

Vous pouvez aussi trouver plus facilement les commandes contenues dans un module.The commands in a module are also easier to find. L' Get-Command applet de commande obtient désormais toutes les commandes de tous les modules installés, même si elles n’ont pas encore été dans la session, afin que vous puissiez rechercher une commande et l’utiliser sans l’importer.The Get-Command cmdlet now gets all commands in all installed modules, even if they are not yet in the session, so you can find a command and use it without importing.

Chacun des exemples suivants provoque l’importation du module CimCmdlets, qui contient Get-CimInstance , dans votre session.Each of the following examples cause the CimCmdlets module, which contains Get-CimInstance, to be imported into your session.

  • Exécutez la commandeRun the Command

    Get-CimInstance Win32_OperatingSystem
    
  • Obtient la commandeGet the Command

    Get-Command Get-CimInstance
    
  • Obtenir de l’aide pour la commandeGet Help for the Command

    Get-Help Get-CimInstance
    

Get-Command les commandes qui incluent un caractère générique ( * ) sont considérées comme étant destinées à être découvertes, ne sont pas utilisées et n’importent pas de modules.Get-Command commands that include a wildcard character (*) are considered to be for discovery, not use, and do not import any modules.

Seuls les modules stockés à l’emplacement spécifié par la variable d’environnement PSModulePath sont importés automatiquement.Only modules that are stored in the location specified by the PSModulePath environment variable are automatically imported. Les modules dans d’autres emplacements doivent être importés en exécutant l’applet de commande Import-Module .Modules in other locations must be imported by running the Import-Module cmdlet.

En outre, les commandes qui utilisent des fournisseurs PowerShell n’importent pas automatiquement un module.Also, commands that use PowerShell providers do not automatically import a module. Par exemple, si vous utilisez une commande qui requiert le lecteur WSMan :, tel que l' Get-PSSessionConfiguration applet de commande, vous devrez peut-être exécuter l' Import-Module applet de commande pour importer le module Microsoft. WSMan. Management qui comprend le WSMan: lecteur.For example, if you use a command that requires the WSMan: drive, such as the Get-PSSessionConfiguration cmdlet, you might need to run the Import-Module cmdlet to import the Microsoft.WSMan.Management module that includes the WSMan: drive.

Vous pouvez toujours exécuter la Import-Module commande pour importer un module et utiliser la $PSModuleAutoloadingPreference variable pour activer, désactiver et configurer l’importation automatique de modules.You can still run the Import-Module command to import a module and use the $PSModuleAutoloadingPreference variable to enable, disable and configure automatic importing of modules. Pour plus d’informations, consultez about_Preference_Variables.For more information, see about_Preference_Variables.

Comment utiliser un moduleHow to Use a Module

Pour utiliser un module, procédez comme suit :To use a module, perform the following tasks:

  1. Installez le module.Install the module. (Bien souvent, cette tâche ne vous incombe pas.)(This is often done for you.)
  2. Recherchez les commandes ajoutées par le module.Find the commands that the module added.
  3. Utilisez les commandes ajoutées par le module.Use the commands that the module added.

Cette rubrique explique comment effectuer ces tâches.This topic explains how to perform these tasks. Elle contient également d'autres informations utiles sur la gestion des modules.It also includes other useful information about managing modules.

Comment installer un moduleHow to Install a Module

Si vous recevez un module sous la forme d’un dossier contenant des fichiers, vous devez l’installer sur votre ordinateur avant de pouvoir l’utiliser dans PowerShell.If you receive a module as a folder with files in it, you need to install it on your computer before you can use it in PowerShell.

La plupart des modules sont installés pour vous.Most modules are installed for you. PowerShell est fourni avec plusieurs modules préinstallés, parfois appelés modules principaux .PowerShell comes with several preinstalled modules, sometimes called the core modules. Sur les ordinateurs Windows, si des fonctionnalités incluses avec le système d’exploitation possèdent des applets de commande pour les gérer, ces modules sont préinstallés.On Windows-based computers, if features that are included with the operating system have cmdlets to manage them, those modules are preinstalled. Quand vous installez une fonctionnalité Windows, en utilisant, par exemple, l’Assistant Ajout de rôles et de fonctionnalités dans Gestionnaire de serveur, ou la boîte de dialogue Activer ou désactiver des fonctionnalités Windows dans le panneau de configuration, tous les modules PowerShell qui font partie de la fonctionnalité sont installés.When you install a Windows feature, by using, for example, the Add Roles and Features Wizard in Server Manager, or the Turn Windows features on or off dialog box in Control Panel, any PowerShell modules that are part of the feature are installed. D'autres modules sont fournis avec un programme d'installation.Many other modules come in an installer or Setup program that installs the module.

Utilisez la commande suivante pour créer un répertoire modules pour l’utilisateur actuel :Use the following command to create a Modules directory for the current user:

New-Item -Type Directory -Path $HOME\Documents\PowerShell\Modules

Copiez le dossier du module en totalité dans le répertoire Modules.Copy the entire module folder into the Modules directory. Vous pouvez utiliser n’importe quelle méthode pour copier le dossier, y compris l’Explorateur Windows et Cmd.exe, ainsi que PowerShell.You can use any method to copy the folder, including Windows Explorer and Cmd.exe, as well as PowerShell. Dans PowerShell, utilisez l’applet de commande Copy-Item .In PowerShell use the Copy-Item cmdlet. Par exemple, pour copier le dossier MyModule de dans C:\ps-test\MyModule le répertoire Modules, tapez :For example, to copy the MyModule folder from C:\ps-test\MyModule to the Modules directory, type:

Copy-Item -Path C:\ps-test\MyModule -Destination `
    $HOME\Documents\PowerShell\Modules

Vous pouvez installer vos modules n'importe où, mais nous vous recommandons de les installer dans un emplacement de module par défaut pour faciliter leur gestion.You can install a module in any location, but installing your modules in a default module location makes them easier to manage. Pour plus d’informations sur les emplacements par défaut des modules, consultez les sections module et emplacements des ressources DSC et PSModulePath .For more information about the default module locations, see the Module and DSC Resource Locations, and PSModulePath section.

Comment rechercher des modules installésHow to Find Installed Modules

Pour trouver les modules qui sont installés dans un emplacement par défaut, mais qui ne sont pas encore dans votre session, tapez :To find modules that are installed in a default module location, but not yet imported into your session, type:

Get-Module -ListAvailable

Pour rechercher les modules qui ont déjà été importés dans votre session, à l’invite de PowerShell, tapez :To find the modules that have already been imported into your session, at the PowerShell prompt, type:

Get-Module

Pour plus d’informations sur l’applet de commande Get-Module , consultez la rubrique obtenir-module.For more information about the Get-Module cmdlet, see Get-Module.

Comment rechercher les commandes dans un moduleHow to Find the Commands in a Module

Utilisez l' Get-Command applet de commande pour rechercher toutes les commandes disponibles.Use the Get-Command cmdlet to find all available commands. Vous pouvez utiliser les paramètres de l' Get-Command applet de commande pour filtrer les commandes, par exemple par module, nom et substantif.You can use the parameters of the Get-Command cmdlet to filter commands such as by module, name, and noun.

Pour trouver toutes les commandes dans un module, tapez :To find all commands in a module, type:

Get-Command -Module <module-name>

Par exemple, pour rechercher les commandes dans le module BitsTransfer, tapez :For example, to find the commands in the BitsTransfer module, type:

Get-Command -Module BitsTransfer

Pour plus d’informations sur l' Get-Command applet de commande, consultez la rubrique obtenir-Command.For more information about the Get-Command cmdlet, see Get-Command.

Comment obtenir de l’aide pour les commandes d’un moduleHow to Get Help for the Commands in a Module

Si le module contient des fichiers d’aide pour les commandes qu’il exporte, l’applet de commande Get-Help affiche les rubriques d’aide.If the module contains Help files for the commands that it exports, the Get-Help cmdlet will display the Help topics. Utilisez le même Get-Help format de commande que celui que vous utiliseriez pour obtenir de l’aide pour n’importe quelle commande dans PowerShell.Use the same Get-Help command format that you would use to get help for any command in PowerShell.

À compter de PowerShell 3,0, vous pouvez télécharger les fichiers d’aide d’un module et télécharger les mises à jour des fichiers d’aide afin qu’elles ne soient jamais obsolètes.Beginning in PowerShell 3.0, you can download Help files for a module and download updates to the Help files so they are never obsolete.

Pour obtenir de l'aide sur une commande d'un module, tapez :To get help for a commands in a module, type:

Get-Help <command-name>

Pour obtenir de l’aide en ligne pour la commande dans un module, tapez :To get help online for command in a module, type:

Get-Help <command-name> -Online

Pour télécharger et installer les fichiers d’aide pour les commandes d’un module, tapez :To download and install the help files for the commands in a module, type:

Update-Help -Module <module-name>

Pour plus d’informations, consultez la rubrique obtenir-aide et Update-Help.For more information, see Get-Help and Update-Help.

Comment importer un moduleHow to Import a Module

Vous pouvez être amené à importer un module ou un fichier de module.You might have to import a module or import a module file. L’importation est requise lorsqu’un module n’est pas installé dans les emplacements spécifiés par la variable d’environnement PSModulePath , $env:PSModulePath ou le module se compose d’un fichier, tel qu’un fichier. dll ou. psm1, au lieu d’un module standard fourni sous forme de dossier.Importing is required when a module is not installed in the locations specified by the PSModulePath environment variable, $env:PSModulePath, or the module consists of file, such as a .dll or .psm1 file, instead of typical module that is delivered as a folder.

Vous pouvez également choisir d’importer un module pour pouvoir utiliser les paramètres de la Import-Module commande, tels que le paramètre prefix, qui ajoute un préfixe unique aux noms de toutes les commandes importées, ou le paramètre NoClobber , qui empêche le module d’ajouter des commandes qui masquent ou remplacent des commandes existantes dans la session.You might also choose to import a module so that you can use the parameters of the Import-Module command, such as the Prefix parameter, which adds a distinctive prefix to the noun names of all imported commands, or the NoClobber parameter, which prevents the module from adding commands that would hide or replace existing commands in the session.

Pour importer des modules, utilisez l’applet de commande Import-Module .To import modules, use the Import-Module cmdlet.

Pour importer des modules dans un emplacement PSModulePath de la session active, utilisez le format de commande suivant.To import modules in a PSModulePath location into the current session, use the following command format.

Import-Module <module-name>

Par exemple, la commande suivante importe le module BitsTransfer dans la session active.For example, the following command imports the BitsTransfer module into the current session.

Import-Module BitsTransfer

Pour importer un module qui ne figure pas dans un emplacement de module par défaut, utilisez le chemin d'accès complet au dossier du module dans la commande.To import a module that is not in a default module location, use the fully qualified path to the module folder in the command.

Par exemple, pour ajouter le module TestCmdlets dans le C:\ps-test répertoire à votre session, tapez :For example, to add the TestCmdlets module in the C:\ps-test directory to your session, type:

Import-Module C:\ps-test\TestCmdlets

Pour importer un fichier de module qui ne figure pas dans un dossier de module, utilisez le chemin d'accès complet au fichier du module dans la commande.To import a module file that is not contained in a module folder, use the fully qualified path to the module file in the command.

Par exemple, pour ajouter le module TestCmdlets.dll dans le C:\ps-test répertoire à votre session, tapez :For example, to add the TestCmdlets.dll module in the C:\ps-test directory to your session, type:

Import-Module C:\ps-test\TestCmdlets.dll

Pour plus d’informations sur l’ajout de modules à votre session, consultez import-module.For more information about adding modules to your session, see Import-Module.

Comment importer un module dans chaque sessionHow to Import a Module into Every Session

La Import-Module commande importe les modules dans votre session PowerShell actuelle.The Import-Module command imports modules into your current PowerShell session. Pour importer un module dans chaque session PowerShell que vous démarrez, ajoutez la Import-Module commande à votre profil PowerShell.To import a module into every PowerShell session that you start, add the Import-Module command to your PowerShell profile.

Pour plus d'informations sur les profils, consultez about_Profiles.For more information about profiles, see about_Profiles.

Comment supprimer un moduleHow to Remove a Module

Quand vous supprimez un module, les commandes ajoutées par le module sont supprimées de la session.When you remove a module, the commands that the module added are deleted from the session.

Pour supprimer un module de votre session, utilisez le format de commande suivant.To remove a module from your session, use the following command format.

Remove-Module <module-name>

Par exemple, la commande suivante supprime le module BitsTransfer de la session active.For example, the following command removes the BitsTransfer module from the current session.

Remove-Module BitsTransfer

Le fait de supprimer un module annule l'opération d'importation d'un module.Removing a module reverses the operation of importing a module. Toutefois, le module supprimé n'est pas désinstallé.Removing a module does not uninstall the module. Pour plus d’informations, consultez Remove-Module.For more information, see Remove-Module.

Emplacements des ressources de module et DSC, et PSModulePathModule and DSC Resource Locations, and PSModulePath

La $env:PSModulePath variable d’environnement contient une liste d’emplacements de dossiers dans lesquels rechercher des modules et des ressources.The $env:PSModulePath environment variable contains a list of folder locations that are searched to find modules and resources.

Par défaut, les emplacements effectifs affectés à $env:PSModulePath sont les suivants :By default, the effective locations assigned to $env:PSModulePath are:

  • Emplacements à l’ensemble du système : $PSHOME\ModulesSystem-wide locations: $PSHOME\Modules

    Ces dossiers contiennent des modules fournis avec Windows et PowerShell.These folders contain modules that ship with Windows and PowerShell.

    Les ressources DSC incluses avec PowerShell sont stockées dans le $PSHOME\Modules\PSDesiredStateConfiguration\DSCResources dossier.DSC resources that are included with PowerShell are stored in the $PSHOME\Modules\PSDesiredStateConfiguration\DSCResources folder.

  • Modules spécifiques à l’utilisateur : il s’agit de modules installés par l’utilisateur dans l’étendue de l’utilisateur.User-specific modules: These are modules installed by the user in the user's scope. Install-Module possède un paramètre d' étendue qui vous permet de spécifier si le module est installé pour l’utilisateur actuel ou pour tous les utilisateurs.Install-Module has a Scope parameter that allows you to specify whether the module is installed for the current user or for all users. Pour plus d’informations, consultez install-module.For more information, see Install-Module.

    L’emplacement CurrentUser spécifique à l’utilisateur sur Windows est le PowerShell\Modules dossier situé à l’emplacement documents dans votre profil utilisateur.The user-specific CurrentUser location on Windows is the PowerShell\Modules folder located in the Documents location in your user profile. Le chemin d’accès spécifique de cet emplacement varie selon la version de Windows et si vous utilisez la redirection de dossiers ou non.The specific path of that location varies by version of Windows and whether or not you are using folder redirection. Microsoft OneDrive peut également modifier l’emplacement de votre dossier documents .Microsoft OneDrive can also change the location of your Documents folder.

    Par défaut, sur Windows 10, cet emplacement est $HOME\Documents\PowerShell\Modules .By default, on Windows 10, that location is $HOME\Documents\PowerShell\Modules. Sur Linux ou Mac, l’emplacement CurrentUser est $HOME/.local/share/powershell/Modules .On Linux or Mac, the CurrentUser location is $HOME/.local/share/powershell/Modules.

    Notes

    Vous pouvez vérifier l’emplacement de votre dossier documents à l’aide de la commande suivante : [Environment]::GetFolderPath('MyDocuments') .You can verify the location of your Documents folder using the following command: [Environment]::GetFolderPath('MyDocuments').

  • L’emplacement de ALLUSERS est $env:PROGRAMFILES\PowerShell\Modules sur Windows.The AllUsers location is $env:PROGRAMFILES\PowerShell\Modules on Windows. Sur Linux ou Mac, les modules sont stockés à l’adresse /usr/local/share/powershell/Modules .On Linux or Mac the modules are stored at /usr/local/share/powershell/Modules.

Notes

Pour ajouter ou modifier des fichiers dans le $env:Windir\System32 répertoire, démarrez PowerShell avec l’option exécuter en tant qu’administrateur .To add or change files in the $env:Windir\System32 directory, start PowerShell with the Run as administrator option.

Vous pouvez modifier les emplacements par défaut des modules sur votre système en modifiant la valeur de la variable d’environnement PSModulePath , $Env:PSModulePath .You can change the default module locations on your system by changing the value of the PSModulePath environment variable, $Env:PSModulePath. La variable d’environnement PSModulePath est modélisée sur la variable d’environnement PATH et a le même format.The PSModulePath environment variable is modeled on the Path environment variable and has the same format.

Pour afficher les emplacements par défaut des modules, tapez :To view the default module locations, type:

$Env:PSModulePath

Pour ajouter un emplacement de module par défaut, utilisez le format de commande suivant.To add a default module location, use the following command format.

$Env:PSModulePath = $Env:PSModulePath + ";<path>"

Le point-virgule ( ; ) dans la commande sépare le nouveau chemin d’accès du chemin d’accès qui le précède dans la liste.The semi-colon (;) in the command separates the new path from the path that precedes it in the list.

Par exemple, pour ajouter le C:\ps-test\Modules répertoire, tapez :For example, to add the C:\ps-test\Modules directory, type:

$Env:PSModulePath + ";C:\ps-test\Modules"

Pour ajouter un emplacement de module par défaut sur Linux ou MacOS, utilisez le format de commande suivant :To add a default module location on Linux or MacOS, use the following command format:

$Env:PSModulePath += ":<path>"

Par exemple, pour ajouter le /usr/local/Fabrikam/Modules répertoire à la valeur de la variable d’environnement PSModulePath , tapez :For example, to add the /usr/local/Fabrikam/Modules directory to the value of the PSModulePath environment variable, type:

$Env:PSModulePath += ":/usr/local/Fabrikam/Modules"

Sur Linux ou MacOS, le signe deux-points ( : ) dans la commande sépare le nouveau chemin d’accès du chemin d’accès qui le précède dans la liste.On Linux or MacOS, the colon (:) in the command separates the new path from the path that precedes it in the list.

Lorsque vous ajoutez un chemin d’accès à PSModulePath , Get-Module les Import-Module commandes incluent des modules dans ce chemin d’accès.When you add a path to PSModulePath , Get-Module and Import-Module commands include modules in that path.

La valeur que vous définissez affecte uniquement la session active.The value that you set affects only the current session. Pour rendre le changement persistant, ajoutez la commande à votre profil PowerShell ou utilisez l’option système du panneau de configuration pour modifier la valeur de la variable d’environnement PSModulePath dans le registre.To make the change persistent, add the command to your PowerShell profile or use System in Control Panel to change the value of the PSModulePath environment variable in the registry.

En outre, pour rendre le changement persistant, vous pouvez également utiliser la méthode SetEnvironmentVariable ne contient de la classe System. Environment pour ajouter un chemin d’accès à la variable d’environnement PSModulePath .Also, to make the change persistent, you can also use the SetEnvironmentVariable method of the System.Environment class to add a Path to the PSModulePath environment variable.

Pour plus d’informations sur la variable PSModulePath , consultez about_Environment_Variables.For more information about the PSModulePath variable, see about_Environment_Variables.

Modules et conflits de nomsModules and Name Conflicts

Des conflits de noms se produisent quand plusieurs commandes portent le même nom dans la session.Name conflicts occur when more than one command in the session has the same name. Quand vous importez un module, un conflit survient si les noms des commandes de ce module sont identiques à ceux de commandes ou d'éléments présents dans la session.Importing a module causes a name conflict when commands in the module have the same names as commands or items in the session.

Les conflits de noms peuvent entraîner le masquage ou le remplacement de commandes.Name conflicts can result in commands being hidden or replaced.

HiddenHidden

Une commande est masquée si elle ne s'exécute pas quand vous tapez son nom. Vous pouvez toutefois l'exécuter en utilisant une autre méthode, par exemple en qualifiant le nom de la commande avec le nom du module ou du composant logiciel enfichable d'où elle provient.A command is hidden when it is not the command that runs when you type the command name, but you can run it by using another method, such as by qualifying the command name with the name of the module or snap-in in which it originated.

RemplacéReplaced

Une commande est remplacée quand vous ne pouvez pas l'exécuter parce qu'elle a été remplacée par une commande du même nom.A command is replaced when you cannot run it because it has been overwritten by a command with the same name. Même quand vous supprimez le module à l'origine du conflit, vous ne pouvez pas exécuter une commande remplacée, à moins de redémarrer la session.Even when you remove the module that caused the conflict, you cannot run a replaced command unless you restart the session.

Import-Module peut ajouter des commandes qui masquent et remplacent des commandes dans la session active.Import-Module might add commands that hide and replace commands in the current session. Par ailleurs, les commandes dans votre session peuvent masquer les commandes ajoutées par le module.Also, commands in your session can hide commands that the module added.

Pour détecter les conflits de noms, utilisez le paramètre All de l’applet de commande Get-Command .To detect name conflicts, use the All parameter of the Get-Command cmdlet. À compter de PowerShell 3,0, Get-Command obtient uniquement les commandes qui s’exécutent lorsque vous tapez le nom de la commande.Beginning in PowerShell 3.0, Get-Command gets only that commands that run when you type the command name. Le paramètre All obtient toutes les commandes portant le nom spécifique dans la session.The All parameter gets all commands with the specific name in the session.

Pour éviter les conflits de noms, utilisez les paramètres NoClobber ou prefix de l’applet de commande Import-Module .To prevent name conflicts, use the NoClobber or Prefix parameters of the Import-Module cmdlet. Le paramètre prefix ajoute un préfixe aux noms des commandes importées afin qu’elles soient uniques dans la session.The Prefix parameter adds a prefix to the names of imported commands so that they are unique in the session. Le paramètre NoClobber n’importe aucune commande susceptible de masquer ou de remplacer des commandes existantes dans la session.The NoClobber parameter does not import any commands that would hide or replace existing commands in the session.

Vous pouvez également utiliser les paramètres alias , cmdlet , Function et variable de Import-Module pour sélectionner uniquement les commandes que vous souhaitez importer, et vous pouvez exclure les commandes qui provoquent des conflits de noms dans votre session.You can also use the Alias , Cmdlet , Function , and Variable parameters of Import-Module to select only the commands that you want to import, and you can exclude commands that cause name conflicts in your session.

Les auteurs de modules peuvent éviter les conflits de noms à l’aide de la propriété DefaultCommandPrefix du manifeste de module pour ajouter un préfixe par défaut à tous les noms de commandes.Module authors can prevent name conflicts by using the DefaultCommandPrefix property of the module manifest to add a default prefix to all command names. La valeur du paramètre prefix est prioritaire sur la valeur de DefaultCommandPrefix .The value of the Prefix parameter takes precedence over the value of DefaultCommandPrefix .

Même si une commande est masquée, vous pouvez l'exécuter en qualifiant le nom de la commande avec le nom du module ou du composant logiciel enfichable d'où elle provient.Even if a command is hidden, you can run it by qualifying the command name with the name of the module or snap-in in which it originated.

Les règles de priorité des commandes PowerShell déterminent la commande qui est exécutée lorsque la session comprend des commandes portant le même nom.The PowerShell command precedence rules determine which command runs when the session includes commands with the same name.

Par exemple, lorsqu’une session comprend une fonction et une applet de commande portant le même nom, PowerShell exécute la fonction par défaut.For example, when a session includes a function and a cmdlet with the same name, PowerShell runs the function by default. Quand la session inclut des commandes du même type avec le même nom, par exemple deux applets de commande avec le même nom, la commande la plus récemment ajoutée est exécutée par défaut.When the session includes commands of the same type with the same name, such as two cmdlets with the same name, by default, it runs the most recently added command.

Pour plus d’informations, y compris une explication des règles de précédence et des instructions pour l’exécution de commandes masquées, consultez about_Command_Precedence.For more information, including an explanation of the precedence rules and instructions for running hidden commands, see about_Command_Precedence.

Modules et composants logiciels enfichablesModules and Snap-ins

Vous pouvez ajouter des commandes à votre session à partir de modules et de composants logiciels enfichables. Les modules peuvent ajouter tous les types de commandes, y compris les applets de commande, les fournisseurs, les fonctions et les éléments, tels que les variables, les alias et les lecteurs PowerShell.You can add commands to your session from modules and snap-ins. Modules can add all types of commands, including cmdlets, providers, and functions, and items, such as variables, aliases, and PowerShell drives. Les composants logiciels enfichables peuvent uniquement ajouter des applets de commande et des fournisseurs.Snap-ins can add only cmdlets and providers.

Avant de supprimer un module ou un composant logiciel enfichable de votre session, utilisez les commandes suivantes pour déterminer les commandes qui seront supprimées.Before removing a module or snap-in from your session, use the following commands to determine which commands will be removed.

Pour rechercher la source d’une applet de commande dans votre session, utilisez le format de commande suivant :To find the source of a cmdlet in your session, use the following command format:

Get-Command <cmdlet-name> | Format-List -Property verb,noun,pssnapin,module

Par exemple, pour trouver la source de l' Get-Date applet de commande, tapez :For example, to find the source of the Get-Date cmdlet, type:

Get-Command Get-Date | Format-List -Property verb,noun,module

Les commandes exportées par un module doivent respecter les règles d’affectation des noms de commande PowerShell.The commands that a module exports should follow the PowerShell command naming rules. Si le module que vous importez exporte des applets de commande ou des fonctions dont les noms comportent des verbes non approuvés, l' Import-Module applet de commande affiche le message d’avertissement suivant.If the module that you import exports cmdlets or functions that have unapproved verbs in their names, the Import-Module cmdlet displays the following warning message.

AVERTISSEMENT : certains noms de commandes importés incluent des verbes non approuvés qui peuvent les rendre moins détectables.WARNING: Some imported command names include unapproved verbs which might make them less discoverable. Utilisez le paramètre Verbose pour obtenir plus d'informations ou tapez Get-Verb pour afficher la liste des verbes approuvés.Use the Verbose parameter for more detail or type Get-Verb to see the list of approved verbs.

Ce message n'est qu'un avertissement.This message is only a warning. Le module entier est toujours importé, y compris les commandes non conformes.The complete module is still imported, including the non-conforming commands. Bien que le message soit affiché aux utilisateurs du module, le problème d'affectation de noms doit être corrigé par l'auteur du module.Although the message is displayed to module users, the naming problem should be fixed by the module author.

Pour supprimer le message d’avertissement, utilisez le paramètre DisableNameChecking de l’applet de commande Import-Module .To suppress the warning message, use the DisableNameChecking parameter of the Import-Module cmdlet.

Modules intégrés et composants logiciels enfichablesBuilt-in Modules and Snap-ins

Dans PowerShell 2,0 et dans les anciens programmes hôtes de PowerShell 3,0 et versions ultérieures, les commandes de base qui sont installées avec PowerShell sont empaquetées dans des composants logiciels enfichables qui sont ajoutés automatiquement à chaque session PowerShell.In PowerShell 2.0 and in older-style host programs in PowerShell 3.0 and later, the core commands that are installed with PowerShell are packaged in snap-ins that are added automatically to every PowerShell session.

À compter de PowerShell 3,0, pour les programmes hôtes qui implémentent l' InitialSessionState.CreateDefault2 API d’état de session initiale, le composant logiciel enfichable Microsoft. PowerShell. Core est ajouté à chaque session par défaut.Beginning in PowerShell 3.0, for host programs that implement the InitialSessionState.CreateDefault2 initial session state API the Microsoft.PowerShell.Core snap-in is added to every session by default. Les modules sont chargés automatiquement lors de la première utilisation.Modules are loaded automatically on first-use.

Notes

Les sessions à distance, y compris les sessions démarrées à l’aide de l' New-PSSession applet de commande, sont des sessions de style plus ancienne dans lesquelles les commandes intégrées sont empaquetées dans des composants logiciels enfichables.Remote sessions, including sessions that are started by using the New-PSSession cmdlet, are older-style sessions in which the built-in commands are packaged in snap-ins.

Les modules (ou composants logiciels enfichables) suivants sont installés avec PowerShell.The following modules (or snap-ins) are installed with PowerShell.

  • CimCmdletsCimCmdlets
  • Microsoft.PowerShell.ArchiveMicrosoft.PowerShell.Archive
  • Microsoft.PowerShell.CoreMicrosoft.PowerShell.Core
  • Microsoft.PowerShell.DiagnosticsMicrosoft.PowerShell.Diagnostics
  • Microsoft.PowerShell.HostMicrosoft.PowerShell.Host
  • Microsoft.PowerShell.ManagementMicrosoft.PowerShell.Management
  • Microsoft.PowerShell.SecurityMicrosoft.PowerShell.Security
  • Microsoft.PowerShell.UtilityMicrosoft.PowerShell.Utility
  • Microsoft.WSMan.ManagementMicrosoft.WSMan.Management
  • PackageManagementPackageManagement
  • PowerShellGetPowerShellGet
  • PSDesiredStateConfigurationPSDesiredStateConfiguration
  • PSDiagnosticsPSDiagnostics
  • PSReadlinePSReadline

Journalisation des événements du moduleLogging Module Events

À compter de PowerShell 3,0, vous pouvez enregistrer les événements d’exécution des applets de commande et des fonctions dans les modules et les composants logiciels enfichables PowerShell en affectant à la propriété LogPipelineExecutionDetails des modules et des composants logiciels enfichables $True .Beginning in PowerShell 3.0, you can record execution events for the cmdlets and functions in PowerShell modules and snap-ins by setting the LogPipelineExecutionDetails property of modules and snap-ins to $True. Vous pouvez également utiliser un paramètre stratégie de groupe, activer la journalisation des modules, pour activer la journalisation des modules dans toutes les sessions PowerShell.You can also use a Group Policy setting, Turn on Module Logging, to enable module logging in all PowerShell sessions. Pour plus d’informations, consultez les articles sur la journalisation et la stratégie de groupe.For more information, see the logging and group policy articles.

Voir aussiSee Also

about_Logging_Windowsabout_Logging_Windows

about_Logging_Non-Windowsabout_Logging_Non-Windows

about_Group_Policy_Settingsabout_Group_Policy_Settings

about_Command_Precedenceabout_Command_Precedence

about_Group_Policy_Settingsabout_Group_Policy_Settings

Get-CommandGet-Command

Get-HelpGet-Help

Get-ModuleGet-Module

Module d’importationImport-Module

Remove-ModuleRemove-Module