L’automatisation du bâtiment avec PowerShell peut sembler initialement écrasante, mais comme pour tout grand projet, c’est une question d’avancer étape par étape. Imaginez PowerShell comme une collection de blocs de construction, avec des modules comme la fondation qui donne vie à sa fonctionnalité.
Dans cet article, vous découvrirez ce que sont les modules PowerShell, comment les trouver et comment les utiliser pour dynamiser vos tâches d’automatisation. De la gestion des machines virtuelles à la connexion avec des services cloud ou à l’automatisation d’Active Directory, les modules rendent tout cela possible.
Lisez la suite pour débloquer le plein potentiel de PowerShell et aborder précisément vos tâches!
Découverte des modules PowerShell disponibles
Les modules PowerShell sont des blocs de construction essentiels qui étendent sa fonctionnalité. Cependant, tous les modules ne se chargent pas automatiquement dans votre session, ils restent souvent sur votre système, en attente d’être découverts.
Pour explorer les modules installés sur votre système, utilisez la commande Get-Module
:
Get-Module
Vous pouvez remarquer une courte liste de modules. La raison en est que Get-Module
montre uniquement les modules déjà importés dans votre session.
Pour voir tous les modules disponibles sur votre système, y compris ceux qui ne sont pas encore chargés, ajoutez le paramètre -ListAvailable
:
Get-Module -ListAvailable
Cette commande liste tous les modules disponibles sur votre système, qu’ils soient chargés en mémoire ou non. PowerShell importe automatiquement les modules lorsque vous utilisez des commandes à partir d’eux, donc vous n’avez généralement pas besoin de les charger manuellement.
Les modules peuvent être de différents types – script, binaire ou manifeste.
Pour regrouper les modules par type pour une inspection plus facile, essayez ceci:
gmo -ListAvailable | group ModuleType
Ici, vous utilisez des alias pour plus de commodité.
Par exemple, gmo
est une abréviation de Get-Module
, et group
est un alias de Group-Object
. Les alias permettent de gagner du temps lors de l’exécution de commandes dans la console.
Découverte des versions de module et des détails de commande
Chaque module a une version représentant son ensemble de fonctionnalités ou ses changements au fil du temps. Le versionnage vous permet de gérer les mises à jour ou de revenir à une version précédente si nécessaire.
Les modules contiennent également des commandes accessibles via la propriété ExportedCommands
.
Pour voir les commandes du module Microsoft.PowerShell.Management
, exécutez :
gmo Microsoft.PowerShell.Management | Select-ExpandProperty ExportedCommands
Cette commande affiche une liste des commandes disponibles dans le module.
Localisation des répertoires de module
Les modules ne fonctionnent pas par magie dans PowerShell – ils résident dans des répertoires spécifiques de votre système, et PowerShell doit savoir où les trouver.
Pour afficher les emplacements des modules PowerShell disponibles :
gmo -list
Les emplacements courants comprennent :
- C:\Program Files\PowerShell\7\Modules
- C:\Program Files\WindowsPowerShell\Modules
- C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
Même en exécutant PowerShell Core, des modules des répertoires de Windows PowerShell peuvent encore apparaître car PowerShell Core peut les utiliser.
Les modules ont des catégories dédiées par leur propriété PSEdition
, qui indique la compatibilité :
Core
– Conçu pour PowerShell Core.Desk
– Conçu pour Windows PowerShell.Both
– Compatible avec les deux éditions.
Gestion de la variable PSModulePath
PowerShell ne recherche pas automatiquement des modules dans l’ensemble de votre système, mais s’appuie sur des chemins spécifiques définis par la variable d’environnement PSModulePath
. Si un module n’est pas dans l’un de ces chemins, PowerShell ne le trouvera pas, même s’il a été installé ailleurs dans le système.
Pour afficher la variable d’environnement PSModulePath
:
$env:PSModulePath
La variable contient une liste de répertoires séparés par des points-virgules.
Pour une meilleure lisibilité, divisez-la en un tableau:
$env:PSModulePath -split ';'
PowerShell recherche des modules dans:
- Les répertoires au niveau de l’utilisateur (par exemple, le dossier Documents de votre profil utilisateur).
- Les répertoires partagés dans Program Files.
- Les répertoires au niveau du système, tels que C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules.
Vous pouvez également ajouter des répertoires personnalisés au chemin de recherche:
$env:PSModulePath + ';C:\MyNewModulePath' $env:PSModulePath
Ce changement s’applique à la session en cours, permettant à PowerShell de rechercher des modules dans le chemin spécifié.
Conclusion
Dans cet article, vous avez exploré comment découvrir les modules disponibles, afficher leurs versions, inspecter leurs commandes et localiser leurs répertoires de stockage. Vous avez également appris à tirer parti de la variable d’environnement PSModulePath
pour personnaliser l’endroit où PowerShell recherche des modules.
Ces compétences fondamentales vous permettent de libérer tout le potentiel de PowerShell pour vos tâches d’automatisation. Continuez à mettre en pratique ces connaissances. Commencez par explorer les modules déjà disponibles sur votre système et identifiez ceux qui répondent à vos besoins actuels.
Avec une compréhension plus approfondie des modules, vous serez prêt à relever les défis d’automatisation complexes avec confiance et efficacité !
Source:
https://adamtheautomator.com/powershell-modules-guide/