Avez-vous déjà exécuté une commande PowerShell et reçu le redouté message d’erreur « Le terme n’est pas reconnu comme le nom d’un cmdlet » ? Voici le hic : le problème pourrait être aussi simple qu’un module manquant ou non importé. Même dans les versions modernes de PowerShell, comprendre comment fonctionnent les modules est essentiel pour diagnostiquer et résoudre ces problèmes.
La bonne nouvelle ? Ce guide couvre tout, de la vérification des modules actuellement importés par PowerShell à la maîtrise de la façon d’importer, de supprimer et de réimporter ces modules. À la fin, vous serez capable de gérer les modules PowerShell sans effort, que ce soit pour résoudre des erreurs inattendues ou travailler sur des modules personnalisés.
Plongez-vous et laissez les modules PowerShell vous aider à optimiser votre flux de travail en toute confiance !
Vérification des modules importés
Les commandes PowerShell peuvent échouer avec des messages d’erreur cryptiques lorsque les modules ne sont pas chargés correctement. Par exemple, essayer d’exécuter Get-ADUser sans d’abord importer le module ActiveDirectory entraînera une erreur « commande introuvable ». De même, tenter d’utiliser des commandes Azure nécessite que le module Az soit présent dans votre session.
PowerShell doit importer le module pertinent pour garantir que les commandes fonctionnent comme prévu et rendre ses commandes disponibles.
Pour afficher les modules actuellement importés, utilisez :
Get-Module
Lorsque vous exécutez Get-Module, vous verrez une sortie similaire à ceci :
ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Manifest 7.0.0.0 Microsoft.PowerShell.Management {Add-Computer, Add-Content, Checkpoint-Computer...} Manifest 7.0.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variable...} Script 2.0.0 PSReadline {Get-PSReadLineKeyHandler, Get-PSReadLineOption...} Binary 1.0.0.1 SmbShare {Get-SmbShare, Set-SmbShare, Remove-SmbShare...}
Cela affiche une liste de tous les modules actuellement chargés dans votre session PowerShell, montrant leur type (Manifest, Script ou Binaire), numéro de version, nom du module et un résumé des commandes qu’ils fournissent. La colonne ExportedCommands montre quels cmdlets sont disponibles à partir de chaque module.
Ensuite, examinez les commandes d’un module que vous pouvez importer :
Get-Module -Name SmbShare -ListAvailable | Select exportedcommands
Lorsque vous exécutez cette commande, vous verrez une sortie qui liste toutes les commandes disponibles dans le module SmbShare. Par exemple :
ExportedCommands ---------------- {Get-SmbShare, New-SmbShare, Remove-SmbShare, Set-SmbShare, Get-SmbShareAccess, Grant-SmbShareAccess, Block-SmbShareAccess, Revoke-SmbShareAccess, Get-SmbMapping}
Cette sortie montre tous les cmdlets que vous pouvez utiliser à partir du module SmbShare. Chaque commande a un but spécifique pour gérer les partages SMB :
- Get-SmbShare : Liste tous les partages SMB sur le système
- New-SmbShare : Crée un nouveau partage SMB
- Remove-SmbShare : Supprime un partage SMB existant
- Set-SmbShare : Modifie les propriétés d’un partage existant
Comprendre quelles commandes sont disponibles vous aide à choisir le bon outil pour votre tâche. Vous pouvez utiliser des commandes similaires pour explorer les capacités d’autres modules.
Importation automatique des modules
Pour voir comment PowerShell gère les modules de manière dynamique, voici un exemple montrant le chargement dynamique des modules :
PS> Get-Module ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Manifest 7.0.0.0 Microsoft.PowerShell.Management {Add-Computer, Add-Content...} Manifest 7.0.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type...} Script 2.0.0 PSReadline {Get-PSReadLineKeyHandler...} PS> Get-SmbShare PS> Get-Module ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Manifest 7.0.0.0 Microsoft.PowerShell.Management {Add-Computer, Add-Content...} Manifest 7.0.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type...} Script 2.0.0 PSReadline {Get-PSReadLineKeyHandler...} Binary 1.0.0.1 SmbShare {Get-SmbShare, Set-SmbShare...}
Comme indiqué ci-dessus, lorsque vous exécutez Get-SmbShare, PowerShell importe automatiquement le module SmbShare. Vous pouvez voir que ce module apparaît dans la liste après avoir exécuté la commande.
Suppression et réimportation des modules
Vous pourriez avoir besoin de vider un module de la mémoire, par exemple lors de tests de nouvelles configurations ou de résolution de conflits. Si c’est le cas, pas de souci ; PowerShell vous permet de supprimer un module sans le désinstaller, vous permettant ainsi de réinitialiser ou de rafraîchir la session selon vos besoins.
Pour supprimer un module de la mémoire :
Remove-Module -Name SmbShare
La commande Remove-Module
efface le module de la mémoire mais ne le désinstalle pas de votre système. Bien que la suppression de modules soit rare dans une utilisation quotidienne, elle est utile pour des scénarios spécifiques.
Pour réimporter manuellement le module :
Import-Module -Name SmbShare
La réimportation manuelle peut être utile lors du dépannage ou du travail dans des environnements personnalisés.
Réimporter les modules après des modifications
Lorsque vous travaillez sur un module en développement, vous pouvez rencontrer des situations où les modifications apportées ne prennent pas immédiatement effet. D’anciennes données ou configurations peuvent encore être chargées dans le module, provoquant ce comportement.
La réimportation du module garantit que PowerShell utilise la dernière version. Si vous modifiez un module que vous développez, vous devez le réimporter.
Vous pouvez utiliser à la fois Remove-Module
et Import-Module
ou simplifier le processus avec le paramètre Force
:
Import-Module -Name SmbShare -Force
Le paramètre Force
décharge et recharge le module en une seule étape, ce qui le rend idéal pour les flux de travail de développement et de test.
Conclusion
Dans ce guide, vous avez appris comment gérer les modules PowerShell : vérifier les importations et importer, supprimer et réimporter des modules. Vous avez également exploré comment PowerShell importe dynamiquement des modules et comment contrôler le chargement pour dépanner ou tester des configurations personnalisées manuellement.
Maintenant, mettez en pratique ces compétences en expérimentant avec des modules personnalisés dans vos scripts. Explorez le développement de modules et utilisez le paramètre Force
pour garantir que les modifications prennent effet.
Améliorez votre dépannage, le développement de scripts et votre flux de travail PowerShell global avec des modules PowerShell!
Source:
https://adamtheautomator.com/powershell-modules-guide-2/