Comment installer des modules PowerShell : un guide étape par étape
PowerShellest une solution d'automatisation des tâches multiplateforme de Microsoft, composée d'un shell de ligne de commande, d'un langage de script et d'un cadre de gestion de configuration
UNModule PowerShellcontient un ensemble de membres Windows PowerShell associés, tels que des applets de commande, des fournisseurs, des fonctions, des flux de travail, des variables et des alias. Les membres d'un package (qui sont généralement regroupés dans un seul répertoire) peuvent être implémentés dans un script PowerShell, une DLL compilée ou les deux. L'objectif premier d'un module est de permettre la modularisation du code Windows PowerShell.
En définissant un ensemble de fichiers de script, d'assemblys et de ressources associées en tant que module, vous pouvez référencer, charger, conserver et partager votre code beaucoup plus facilement que vous ne le feriez autrement. Par exemple, les personnes qui écrivent des commandes peuvent utiliser des modules pour organiser leurs commandes et les partager avec d'autres, tandis que celles qui reçoivent des modules peuvent ajouter les commandes des modules à leurs sessions PowerShell et les utiliser comme les commandes intégrées.
Le PowerShell fourni avec Windows est livré avec quelques centaines d'applets de commande qui peuvent vous aider à effectuer des tâches de base telles que la lecture de fichiers, la création de clés de registre, l'envoi d'une requête ping aux ordinateurs, la connexion à des systèmes distants, etc. Cependant, cette applet de commande PowerShell prête à l'emploi ne peut pas prendre en charge tout ce que vous souhaitez faire avec le langage. Pour effectuer des tâches en dehors des commandes PowerShell intégrées, vous devez installer des modules contenant des commandes qui vous offrent cette fonctionnalité. Dans cet article, nous fournirons un guide étape par étape sur la façon d'installer les modules PowerShell.
Composants et types de modules PowerShell
Un module comprend quatre éléments essentiels Composants, qui incluent un script PowerShell ou un assembly d'applet de commande géré, des assemblys ou des scripts supplémentaires, un fichier manifeste et un répertoire contenant tout ce contenu. Les sections suivantes décrivent les les types de modules que vous pouvez obtenir en mélangeant et en faisant correspondre les différentes parties possibles d'un module :
- Modules de scripts: Un module de script est simplement un script Windows PowerShell avec une extension .psm1, qui permet aux administrateurs d'utiliser les fonctions d'importation, d'exportation et de gestion. Un module de script contient du code Windows PowerShell valide. Il peut être enregistré ou installé sur le chemin du module PowerShell ou sur tout chemin que vous décrivez explicitement afin que PowerShell puisse raisonnablement le découvrir.
- Modules binaires: Un module binaire est un assembly .NET Framework (.dll) qui contient du code compilé. Par rapport à un module de script, un module binaire vous permet de créer des applets de commande plus rapidement ou d'utiliser des fonctionnalités telles que le multithreading qui ne sont pas aussi faciles à coder dans les scripts Windows PowerShell. De plus, un module binaire peut être enregistré ou installé dans un dossier le long du chemin du module PowerShell.
- Modules de manifeste: Un module manifeste est un module qui utilise un fichier manifeste pour décrire tous ses modules binaires composants mais qui n'a aucune sorte d'assembly de base ou de script.
- Modules dynamiques: Un module dynamique est un module qui n'est pas chargé à partir d'un fichier ni enregistré dans celui-ci. Au lieu de cela, ils sont créés dynamiquement par un script, en utilisant leApplet de commande nouveau module. Ce module permet à un script de créer un module à la demande qui n'a pas besoin d'être chargé ou enregistré sur un stockage persistant. Les modules dynamiques ne nécessitent pas de dossiers permanents pour stocker leurs assemblys associés.
Comment installer un module PowerShell
Une fois que vous avez créé un module de script, binaire ou manifeste, vous pouvez enregistrer votre travail dans un emplacement tel qu'un dossier système dans lequel Windows PowerShell est installé ou un dossier utilisateur, afin que d'autres personnes puissent y accéder. Avant de pouvoir utiliser un module, vous devez d'abord installer le module. Deuxièmement, vous devez trouver le Commandes PowerShell que le module a ajouté à l'aide de l'applet de commandeObtenir la commande, et enfin, vous devez utiliser les commandes ajoutées par le module.
Il existe deux méthodes principales pour installer le module PowerShell : la méthode de la galerie PowerShell et la méthode manuelle (si les modules ne sont pas disponibles dans la galerie PowerShell). La section suivante décrit chacune de ces méthodes en détail.
Méthode 1 : installer le module à partir de la galerie PowerShell
Le Galerie PowerShell est un référentiel de packages en ligne pour PowerShell contenant des scripts, des modules et des ressources DSC que vous pouvez télécharger et exploiter. Microsoft et la communauté PowerShell en sont les auteurs. Vous pouvez trouver des packages dans la galerie PowerShell en :
- Utilisation du contrôle Rechercher sur la page d'accueil de PowerShell Gallery
- Parcourir les modules et les scripts à partir de la page Packages
- Exécution des applets de commande Find-Module, Find-DscResource et Find-Script, en fonction du type de package
Une fois que vous avez identifié un package qui vous intéresse, vous pouvez en savoir plus à son sujet en examinant les métadonnées téléchargées avec le package sur la page spécifique du package dans la Galerie. Vous souhaiterez peut-être également télécharger le package depuis la Galerie pour une inspection plus approfondie. Pour ce faire, exécutez soit leModule de sauvegardeouEnregistrer le scriptapplet de commande, selon le type de colis. Cela vous permet de sauvegarder le package localement pour en inspecter le contenu sans l'installer.
L'installation de modules PowerShell à partir de PowerShell Gallery est le moyen le plus simple d'installer des modules. Pour installer un package ou un module depuis la Galerie, nous utilisons la commande :Module d'installationouApplet de commande Install-Script, selon le type de colis.
- LeModule d'installationLa commande installe le module sur$env : ProgramFilesWindowsPowerShellModulespar défaut. Cela nécessite un compte administrateur. Si vous ajoutez le-Portée de l'utilisateur actuelparamètre, le module est installé pour$env : PROFIL UTILISATEURDocumentsWindowsPowerShellModules.
- La commande Install-Script installe le script sur$env : ProgramFilesWindowsPowerShellScriptspar défaut. Cela nécessite également un compte administrateur. Si vous ajoutez le-Portée de l'utilisateur actuelparamètre, le script est installé pour$env : PROFIL UTILISATEURDocumentsWindowsPowerShellScripts.
- LeModule d'installationetScript d'installationLa commande, par défaut, installe la version la plus récente d'un package. Si vous avez besoin d'une ancienne version du package, ajoutez le paramètre-Version requise.
De plus, avant d'installer un module, vous devez connaître le nom du module et la commande pour l'installer. La page Galerie vous indiquera quelle est la commande pour installer le module. Dans cet exemple, nous allons installer un module que nous avons trouvé sur la Galerie nomméRéseautageDsc. Pour ce faire, exécutez la commande suivante :
Module d'installation -Nom NetworkingDsc -RequiredVersion 8.2.0
Selon le fournisseur NuGet que vous exécutez, vous pouvez recevoir une notification indiquant que le fournisseur NuGet doit continuer.PowerShellObtenirs'appuie sur le fournisseur nommé Nuget et vous devrez peut-être installer la version la plus récente avant de continuer. Tapez Y et appuyez sur la touche Entrée si vous voyez « Voulez-vousPowerShellObtenirinstaller et importer le fournisseur NuGet maintenant ? Encore une fois, en fonction de vos paramètres, vous pouvez recevoir une autre notification : « Êtes-vous sûr de vouloir installer les modules depuis « PSGallery » ? Tapez Y et appuyez sur la touche Entrée pour continuer. Cela commencera l'installation duRéseautageDscmodule, que vous pouvez voir visuellement grâce au texte de chargement en haut de la fenêtre PowerShell. Une fois l'installation terminée, vous pouvez la vérifier en exécutant la commande :Get-Module-ListAvailable.
Si vous souhaitez déployer le package installé depuis PowerShell Gallery vers Azure Automation, cliquez sur Azure Automation, puis cliquez sur Déployer vers Azure Automation sur la page de détails du package. Lorsque vous cliquez dessus, il vous redirigera vers le portail de gestion Azure, où vous vous connecterez à l'aide des informations d'identification de votre compte Azure. Si le package inclut des dépendances, toutes les dépendances seront également déployées sur Azure Automation.
Méthode 2 : installer manuellement les modules PowerShell
Si le module n'est pas disponible dans la galerie PowerShell, vous devez utiliser la méthode manuelle pour l'installer. Pour installer les modules PowerShell manuellement, vous devez d'abord déterminer le chemin du répertoire de votre module PowerShell actuel, télécharger votre nouveau module sur ce chemin et appeler la commande import-module pour informer Windows qu'il est là. Suivez ensuite les étapes ci-dessous pour installer les modules PowerShell manuellement :
1. Déterminez le chemin d'installation : Vous devez déterminer le chemin d’installation de vos modules PowerShell afin de savoir où en placer les nouveaux. Cela permet de garantir que le nouveau module est installé dans un chemin répertorié dans lePSModuleCheminvariable d'environnement. Vous pouvez déterminer où installer votre module en utilisant l'un des chemins stockés dans le$ENV : PSModulePathvariable. Pour ce faire, ouvrez une fenêtre PowerShell et exécutez la commande :$Env : PSModulePath.
La sortie affiche le chemin suivant, comme illustré dans la figure 3.0 ci-dessous :
- C:UtilisateursAdministrateurDocumentsWindowsPowerShellModules
- C:Program FilesWindowsPowerShellModules
- C:WINDOWSsystem32WindowsPowerShellv1.0Modules
Utilisez le premier chemin si vous souhaitez que le module soit disponible pour un compte utilisateur spécifique sur l'ordinateur. Utilisez le deuxième chemin si vous souhaitez rendre le module disponible pour tous les utilisateurs de l'ordinateur. Le troisième chemin est le chemin utilisé par Windows pour les modules intégrés déjà installés avec le système d'exploitation Windows. Microsoft vous recommande d'éviter d'utiliser cet emplacement. Il vous reste donc le premier ou le deuxième chemin.
L'utilisation de l'un de ces chemins signifie que PowerShell peut automatiquement rechercher et charger votre module lorsqu'un utilisateur l'appelle dans son code. Cependant, vous souhaiterez peut-être également ajouter vos chemins, mais restez fidèle aux deux premiers chemins, sauf si nécessaire. Si vous stockez votre module ailleurs, vous pouvez explicitement en informer PowerShell en transmettant l'emplacement de votre module en tant que paramètre lorsque vous appelezModule d'installation.Si vous voyez d'autres chemins répertoriés dans votre variable d'environnement, cela peut provenir de vos applications installées. Certaines applications installent des commandes PowerShell et les ajoutent automatiquement à la variable. Maintenant que nous savons où placer les nouveaux modules, passons à l’étape suivante.
2. Copiez le nouveau module dans le chemin : Téléchargez maintenant le module PowerShell depuis votre site préféré et copiez-le dans l'un des deux chemins identifiés à l'étape 1 ci-dessus. Dans cet exemple, nous allons le mettre à disposition de tous les utilisateurs de l'ordinateur pour le copier dans le répertoire C:Program FilesWindowsPowerShellModules. Une fois terminé, vous pouvez vérifier si le nouveau module est répertorié comme disponible pour PowerShell en exécutant la commande :Get-Module-ListAvailable.
3. Importez un nouveau module : Une fois le nouveau module en place, il nous suffit de dire à Windows de le charger pour l'utiliser dans notre session PowerShell actuelle. Pour cela, utilisez la syntaxe de commande suivante :Import-module -name ModuleName
Par exemple, disons que vous souhaitez importer la commandeNTFSSécurité(Module PowerShell pour gérer la sécurité des fichiers et dossiers sur les volumes NTFS), vous exécuterez la commande :Module d'importation NTFSSecurity. Si vous recevez une notification pour confirmer si vous faites confiance au script ou au module et souhaitez l'exécuter, tapez R pour l'exécuter une fois (en supposant que vous êtes sûr de vouloir l'exécuter). Et c’est fait, et le nouveau module est maintenant prêt à être utilisé.
Bien que Microsoft vous permette d'installer des modules PowerShell à partir de sites tiers, cela a également des implications en matière de sécurité. Des acteurs malveillants peuvent profiter de cette faille pour développer et fournir des scripts contenant des codes malveillants. Par conséquent, assurez-vous de charger uniquement des modules dignes de confiance ou provenant d’une source fiable.
FAQ sur l'installation de PowerShell
Comment obtenir des modules PowerShell ?
Le système PowerShell est déjà disponible dans le système d'exploitation Windows et vous disposez probablement déjà de nombreux modules disponibles. À l'invite PowerShell, tapez Get-Module -ListAvailable pour voir quels modules sont actifs. Pour installer un module, utilisez leObtenir-InstalledModuleapplet de commande.
Où les modules PowerShell sont-ils installés ?
Sous Windows, il existe une variable d'environnement qui contient l'emplacement de stockage des modules PowerShell dans la structure de répertoires du disque. Pour tous les utilisateurs, c'est$env:PROGRAMFILESPowerShellModules. Sous Linux et macOS, les modules sont stockés dans /usr/local/share/powershell/Modules.
Comment installer le module PowerShell de Windows Update ?
Vous devez ouvrir l'invite PowerShell en tant qu'administrateur pour installer le module PSWindowsUpdate.
- EntrerSet-ExecutionPolicy-ExecutionPolicy RemoteSignedpour activer l'exécution de scripts à distance.
- EntrerModule d'installation -Nom PSWindowUpdate -Forcepour télécharger et installer le module PSWindowUpdate.
- EntrerImport-Module -Nom PSWindowUpdatepour amener PSWindowsUpdate dans la session PowerShell en cours.
- EntrerGet-Command -Module PSWindowsUpdatepour vérifier que l'installation a fonctionné et voir quelles commandes sont disponibles dans le module.