RUBRIQUE about_Modules DESCRIPTION COURTE Explique comment installer, importer et utiliser des modules Windows PowerShell. DESCRIPTION LONGUE Un module est un package qui contient des commandes Windows PowerShell, telles que des applets de commande, des fournisseurs, des fonctions, des variables et des alias. Les auteurs de commandes peuvent utiliser des modules pour organiser leurs commandes et les partager avec les autres. Les personnes qui reçoivent des modules peuvent ajouter les commandes qu'ils contiennent à leurs sessions Windows PowerShell et les utiliser comme les commandes intégrées. Cette rubrique explique comment utiliser les modules Windows PowerShell. Pour plus d'informations sur l'écriture de modules Windows PowerShell, consultez " Writing a Windows PowerShell Module " (page éventuellement en anglais) dans la bibliothèque MSDN (Microsoft Developer Network) à l'adresse https://go.microsoft.com/fwlink/?LinkId=144916. COMMENT UTILISER UN MODULE Pour utiliser un module, procédez comme suit : 1. Installez le module. (Cette tâche est souvent déjà faite.) 2. Importez le module dans votre session Windows PowerShell. 3. Recherchez les commandes que le module a ajoutées. 4. Utilisez les commandes que le module a ajoutées. Cette rubrique explique comment effectuer ces tâches. Elle inclut également d'autres informations utiles sur la gestion des modules. COMMENT INSTALLER UN MODULE Si vous recevez un module sous forme de dossier contenant des fichiers, vous devez l'installer sur votre ordinateur pour pouvoir l'importer dans Windows PowerShell. La plupart des modules sont installés pour vous. Windows PowerShell est fourni avec plusieurs modules préinstallés. Dans Windows Server 2008 R2, l'Assistant Ajout de fonctionnalités du Gestionnaire de serveur installe automatiquement les modules de fonctionnalités que vous sélectionnez. De nombreux autres modules sont fournis dans un programme d'installation qui les installe. Pour installer un dossier de module : 1. Créez un répertoire Modules pour l'utilisateur actuel, s'il n'en existe pas déjà un. Pour créer un répertoire Modules, tapez : new-item -type directory -path $home\Documents\WindowsPowerShell\Modules 2. Copiez le dossier de module entier dans le répertoire Modules. Vous pouvez utiliser la méthode de votre choix pour copier le dossier, notamment l'Explorateur Windows et Cmd.exe, mais aussi Windows PowerShell. Dans Windows PowerShell, utilisez l'applet de commande Copy-Item. Par exemple, pour copier le dossier MyModule de C:\ps-test\MyModule vers le répertoire Modules, tapez : copy-item -path c:\ps-test\MyModule -dest $home\Documents\WindowsPowerShell\Modules Vous pouvez installer un module où vous le souhaitez, mais l'utilisation d'un emplacement d'installation de vos modules par défaut en simplifiera la gestion. Pour plus d'informations sur les emplacements de module par défaut, consultez la section " Emplacements de module et PSModulePath " ci-dessous. COMMENT RECHERCHER DES MODULES INSTALLÉS Lorsqu'un module est installé, vous pouvez l'importer dans votre session Windows PowerShell. Pour rechercher des modules installés à un emplacement de module par défaut, à l'invite Windows PowerShell, tapez : get-module -listAvailable Pour rechercher les modules qui ont déjà été importés dans votre session, à l'invite Windows PowerShell, tapez : get-module Pour plus d'informations sur l'applet de commande Get-Module, consultez Get-Module. COMMENT IMPORTER UN MODULE Pour utiliser les commandes d'un module, importez le module dans une session Windows PowerShell. Pour importer des modules à partir d'un emplacement de module par défaut dans la session active, utilisez le format de commande suivant. import-module <nom-module> Par exemple, la commande suivante importe le module BitsTransfer dans la session active. import-module BitsTransfer Pour importer un module qui ne se trouve pas dans un emplacement de module par défaut, utilisez le chemin d'accès complet au dossier de module dans la commande. Par exemple, pour ajouter le module TestCmdlets du répertoire C:\ps-test à votre session, tapez : import-module c:\ps-test\TestCmdlets Pour plus d'informations sur l'ajout de modules à votre session, consultez " Import-Module ". COMMENT IMPORTER TOUS LES MODULES DANS VOTRE SESSION WINDOWS POWERSHELL Dans Windows 7 et Windows Server 2008 R2, la tâche " Importer tous les modules " ouvre une session Windows PowerShell qui inclut tous les modules et composants logiciels enfichables Windows PowerShell disponibles. Pour démarrer une session Windows PowerShell avec tous les modules et composants logiciels enfichables Windows PowerShell disponibles, procédez comme suit. -- Cliquez avec le bouton droit sur l'icône Windows PowerShell dans la barre des tâches, puis cliquez sur " Importer tous les modules ". Remarque : dans Windows Server 2008 R2, l'icône Windows PowerShell est épinglée à la barre des tâches par défaut. Toutefois, vous devez démarrer Windows PowerShell une fois pour faire apparaître la tâche " Importer tous les modules ". Dans d'autres versions de Windows, pour importer tous les modules disponibles dans votre session, à l'invite Windows PowerShell, tapez : get-module -listAvailable | import-module COMMENT RECHERCHER LES COMMANDES D'UN MODULE Après avoir importé un module dans votre session Windows PowerShell, vous pouvez utiliser les commandes qu'il contient. Pour rechercher les commandes qu'un module a ajoutées, à l'invite Windows PowerShell, tapez : get-command -module <nom-module> Par exemple, pour rechercher les commandes que le module BitsTransfer a ajoutées, tapez : get-command -module BitsTransfer Pour plus d'informations sur l'applet de commande Get-Command, consultez Get-Command. COMMENT OBTENIR DE L'AIDE SUR LES COMMANDES D'UN MODULE Si le module contient des rubriques d'aide sur les commandes qu'il exporte, l'applet de commande Get-Help affichera ces rubriques. Utilisez le même format de commande que pour toute rubrique d'aide de Windows PowerShell. Pour obtenir la rubrique d'aide des commandes d'un module, à l'invite Windows PowerShell, tapez : get-help <nom-commande> Pour obtenir une aide plus détaillée, tapez : get-help <nom-commande> -detailed Par exemple, pour obtenir l'aide détaillée de l'applet de commande Start-BitsTransfer, tapez : get-help Start-BitsTransfer -detailed Pour plus d'informations sur le module Get-Help, consultez Get-Help. COMMENT SUPPRIMER UN MODULE Lorsque vous supprimez un module, les commandes qu'il a ajoutées sont supprimées de la session. Pour supprimer un module de votre session, utilisez le format de commande suivant. remove-module <nom-module> Par exemple, la commande suivante supprime le module BitsTransfer de la session active. remove-module BitsTransfer La suppression d'un module inverse l'opération d'importation d'un module. La suppression d'un module ne désinstalle pas le module. Pour plus d'informations sur l'applet de commande Remove-Module, consultez Remove-Module. COMMENT IMPORTER UN MODULE DANS CHAQUE SESSION La commande Import-Module importe des modules dans votre session Windows PowerShell active. Cette commande affecte uniquement la session active. Pour importer un module dans chaque session Windows PowerShell que vous démarrez, ajoutez la commande Import-Module à votre profil Windows PowerShell. Pour plus d'informations sur les profils, consultez about_Profiles. EMPLACEMENTS DE MODULE ET PSMODULEPATH Il existe deux emplacements par défaut pour les modules Windows PowerShell, un pour le système et un pour l'utilisateur actif. Système : $pshome\Modules (%windir%\System32\WindowsPowerShell\v1.0\Modules) Utilisateur actif : $home\Documents\WindowsPowerShell\Modules (%UserProfile%\Documents\WindowsPowerShell\Modules) - ou - $home\Mes documents\WindowsPowerShell\Modules (%UserProfile%\Mes documents\WindowsPowerShell\Modules) Remarque : dans Windows Vista, Windows Server 2008 et les versions ultérieures de Windows, pour ajouter ou modifier des fichiers dans le répertoire %Windir%\System32, démarrez Windows PowerShell avec l'option " Exécuter en tant qu'administrateur ". Vous pouvez modifier les emplacements de module par défaut sur votre système en modifiant la valeur de la variable d'environnement PSModulePath ($env:psmodulepath). La variable d'environnement PSModulePath est modelée sur la variable d'environnement Path et présente le même format. Pour afficher les emplacements de module par défaut, tapez : $env:psmodulepath Pour ajouter un emplacement de module par défaut, utilisez le format de commande suivant : $env:psmodulepath = $env:psmodulepath + ";<chemin d'accès>" 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. Par exemple, pour ajouter le répertoire " C:\ps-test\Modules ", tapez : $env:psmodulepath + ";c:\ps-test\Modules" Lorsque vous ajoutez un chemin d'accès à PSModulePath, les commandes Get-Module et Import-Module incluent les modules de ce chemin d'accès. La valeur que vous définissez affecte uniquement la session active. Pour rendre la modification permanente, ajoutez la commande à votre profil Windows PowerShell ou utilisez Système dans le Panneau de configuration pour modifier la valeur de la variable d'environnement PSModulePath dans le Registre. Pour plus d'informations sur la variable PSModulePath, consultez about_Environment_Variables. MODULES ET CONFLITS DE NOM Des conflits de nom surviennent lorsque plusieurs commandes ont le même nom dans la session. L'importation d'un module provoque un conflit de nom lorsque les commandes qu'il contient ont les mêmes noms que des commandes ou éléments de la session. À cause des conflits de nom, certaines commandes peuvent être masquées ou remplacées. -- Masquée. Une commande est masquée si ce n'est pas elle qui s'exécute lorsque vous tapez le nom de commande, mais que vous pouvez l'exécuter à l'aide d'une autre méthode, par exemple en qualifiant le nom de commande avec le nom du module ou composant logiciel enfichable d'où elle provient. -- Remplacée. Une commande est remplacée lorsque vous ne pouvez pas l'exécuter parce qu'elle a été écrasée par une commande du même nom. Vous ne pouvez pas exécuter une commande remplacée même lorsque vous supprimez le module qui a provoqué le conflit, à moins de redémarrer la session. Import-Module peut ajouter des commandes qui masquent et remplacent certaines commandes de la session active. De même, les commandes de votre session peuvent masquer des commandes que le module a ajoutées. Pour empêcher les conflits de nom, utilisez le paramètre Prefix d'Import-Command pour créer des noms uniques pour les commandes importées. Vous pouvez également utiliser les paramètres Alias, Cmdlet, Function et Variable d'Import-Module pour sélectionner uniquement les commandes que vous souhaitez importer et vous pouvez exclure les commandes provoquant des conflits de nom dans votre session. Même si une commande est masquée, vous pouvez l'exécuter en qualifiant le nom de commande avec le nom du module ou composant logiciel enfichable d'où elle provient. Les règles de priorité des commandes de Windows PowerShell déterminent quelle commande s'exécute lorsque la session inclut des commandes portant le même nom. Par exemple, lorsqu'une session inclut une fonction et une applet de commande portant le même nom, par défaut, Windows PowerShell exécute la fonction. Lorsque la session inclut des commandes du même type et portant le même nom, par exemple deux applets de commande du même nom, par défaut, elle exécute celle qui a été ajoutée le plus récemment. Pour plus d'informations, notamment pour une explication sur les règles de priorité et des instructions sur l'exécution de commandes masquées, consultez about_Command_Precedence. MODULES ET COMPOSANTS LOGICIELS ENFICHABLES Vous pouvez ajouter des commandes à votre session à partir de modules et de composants logiciels enfichables. Les modules peuvent ajouter tout type de commande (applets de commande, fournisseurs et fonctions) et des éléments tels que variables, alias et lecteurs Windows PowerShell. Les composants logiciels enfichables peuvent uniquement ajouter des applets de commande et des fournisseurs. En fait, bien que vous puissiez ajouter des fonctions, alias, variables et lecteurs à votre session en les tapant ou en exécutant un script qui les ajoute, toutes les applets de commande et tous les fournisseurs de votre session proviennent d'un module ou d'un composant logiciel enfichable. Avant de supprimer un module ou composant logiciel enfichable de votre session, utilisez les commandes suivantes pour savoir quelles commandes seront supprimées. Pour trouver la source d'une applet de commande de votre session, utilisez le format de commande suivant : get-command <nom-applet de commande> | format-list -property verb, gnoun, pssnapin, module Par exemple, pour trouver la source de l'applet de commande Get-Date, tapez : get-command get-date | format-list -property verb, noun, pssnapin, module Pour plus d'informations sur les composants logiciels enfichables Windows PowerShell, consultez about_PSSnapins. VOIR AUSSI about_Command_Precedence about_PSSnapins Get-Command Get-Help Get-Module Import-Module Remove-Module