Geek School: découvrez comment étendre PowerShell

Table des matières:

Geek School: découvrez comment étendre PowerShell
Geek School: découvrez comment étendre PowerShell

Vidéo: Geek School: découvrez comment étendre PowerShell

Vidéo: Geek School: découvrez comment étendre PowerShell
Vidéo: Comptes utilisateurs Administrateur ou Standard et Contrôle parentale - YouTube 2024, Mars
Anonim
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 tel que C #, ou des modules, qui peuvent être binaires ou basés sur des scripts.
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 tel que 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 de côté, les composants logiciels enfichables n’ont jamais vraiment retenu l’attention parmi 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 –Registered

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:
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, il ne s’agit pas d’un module, mais pour une raison quelconque, vous devez toujours utiliser le paramètre Module.

Image
Image

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 comme C #. La plupart des commandes intégrées sont également organisées en modules. Pour voir une liste de 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.
À 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.
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. Sinon, vous pouvez simplement ajouter le chemin d'accès au module à la variable d'environnement.
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. Sinon, vous pouvez simplement ajouter le chemin d'accès au 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.

Image
Image

Module de chargement automatique

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 cmdlets appartenant à un module externe sans importer explicitement le module à l'aide de la cmdlet Import-Module. Pour voir cela, commencez par supprimer tous les modules de votre shell à l'aide de la commande suivante:

Get-Module | Remove-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:
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

Conseillé: