Geek School Découvrez comment étendre PowerShell
PowerShell propose deux méthodes pour étendre le shell. Vous pouvez utiliser des composants logiciels enfichables, qui sont uniquement binaires et développés dans un langage de programmation à part entière comme C #, ou des modules, qui peuvent être binaires ou basés sur des scripts..
Assurez-vous de lire les articles précédents de la série:
- Apprenez à automatiser Windows avec PowerShell
- Apprendre à utiliser les cmdlets dans PowerShell
- Apprendre à utiliser des objets dans PowerShell
- Apprentissage du formatage, du filtrage et de la comparaison dans PowerShell
- Apprendre à utiliser la communication à distance dans PowerShell
- Utilisation de PowerShell pour obtenir des informations sur l'ordinateur
- Utilisation de collections dans PowerShell
Et restez à l'écoute pour le reste de la série toute la semaine.
Snapins
Snapins sont tellement l'année dernière. Toutes les blagues mises à part, les composants logiciels enfichables ne font jamais vraiment partie de la communauté PowerShell, car la plupart des scripteurs ne sont pas des développeurs et vous ne pouvez écrire des composants logiciels enfichables que dans un langage comme C #. Néanmoins, certains produits utilisent des composants logiciels enfichables, tels que Web Deploy, par exemple. Afin de voir quels snapins sont disponibles pour vous dans le shell, utilisez la commande suivante:
Get-PSSnapin - Enregistré
Pour utiliser les commandes ajoutées par un composant logiciel enfichable, vous devez d'abord l'importer dans votre session, et vous pouvez le faire comme suit:
Add-PSSnapin -Name WDeploySnapin3.0
À ce stade, vous obtiendrez une erreur si le composant logiciel enfichable Web Deploy n'est pas installé. Si vous l'avez installé, comme moi, il sera importé dans votre session. Pour obtenir une liste des commandes disponibles dans le composant logiciel enfichable, vous pouvez simplement utiliser l'applet de commande Get-Command:
Get-Command -Module WDeploy *
Remarque: techniquement, ce n'est pas un module, mais pour une raison quelconque, vous devez toujours utiliser le paramètre Module..
Modules
Les modules sont plus récents et constituent la voie à suivre. Ils peuvent être scriptés à l'aide de PowerShell ou codés dans un langage tel que C #. La plupart des commandes intégrées sont également organisées en modules. Pour voir une liste des modules sur votre système, vous pouvez utiliser la commande suivante:
Get-Module -ListAvailable
À mesure que les produits sont mis à jour, leurs homologues PowerShell sont en cours de migration vers des modules. Par exemple, SQL avait l'habitude d'avoir un composant logiciel enfichable, mais il est maintenant composé de modules.
Pour utiliser un module, vous devez d'abord l'importer..
Import-Module -Name SQLASCMDLETS
Vous pouvez utiliser le même truc que nous avons utilisé avec les composants logiciels enfichables pour afficher toutes les commandes que le module a ajoutées au shell.
Cela laisse donc la question: comment PowerShell sait-il quels sont les composants logiciels enfichables et les modules que vous avez sur votre système? Bien, les mousquetons sont un peu pénibles et doivent être installés. Une partie du processus d'installation comprend la création de quelques entrées de registre que PowerShell examine pour rechercher des informations sur le composant logiciel enfichable. Les modules, en revanche, peuvent être enregistrés auprès du shell en les plaçant simplement à l’un des emplacements de la variable d’environnement PSModulePath. Alternativement, vous pouvez simplement ajouter le chemin du module à la variable d'environnement.
($ env: PSModulePath) .Split (“;”)
Cela va cracher le contenu de la variable. Notez que si vous avez un module tel que SQL installé, comment il a modifié la variable pour inclure l'emplacement du module SQL.
Chargement automatique du module
PowerShell 3 a introduit une nouvelle fonctionnalité impressionnante qui porte plusieurs noms. Aucun d’entre eux n’est officiel, mais «Module Auto Loading» en est la meilleure description. En gros, cela vous permet d'utiliser des applets de commande appartenant à un module externe sans importer explicitement le module à l'aide de l'applet de commande Import-Module. Pour voir cela, commencez par supprimer tous les modules de votre shell à l'aide de la commande suivante:
Get-Module | Retirer le module
Vous pouvez ensuite vérifier que vous n'avez chargé aucun module en utilisant les éléments suivants:
Get-Module
Utilisez maintenant une applet de commande qui ne se trouve pas dans la bibliothèque principale. Test-Connection est un bon exemple:
Test-Connection localhost
Si vous vérifiez à nouveau vos modules chargés, vous verrez que le module a bien été chargé..
C'est tout pour aujourd'hui les gars, rejoignez-nous demain pour plus.