Introduction à Microsoft Powershell

Généralités

Microsoft Powershell est une solution d’automatisation de tâches architecturé autour de 2 composants principaux :

  • 1 interpréteur de commandes en ligne (→ shell)

  • 1 langage de script

Bien que créé au départ uniquement pour Windows, Microsoft Powershell est devenu un outil multi-plateforme (→ Windows, Linux, macOS) utilisé pour toutes sortes de tâches, notamment dans l’administration système.

Microsoft Powershell dispose, à l’instar d’autres interpréteurs de commandes en ligne (→ ex : bash) des fonctionnalités suivantes :

  • historique de commandes

  • saisie semi-automatique des commandes (→ command completion)

  • alias de commandes

  • chaînage des commandes à travers de pipelines

Par contre, il propose sur cette dernière fonctionnalité une implémentation qui le différencie de tous les autres : le chaînage de commandes s’appuie sur l’échange d’objets plutôt que sur du simple texte.

Ces objets — disposant, comme en C++, de méthodes et de propriétés — vont simplifier considérablement le formatage ou l’extraction des données lors du chaînage de commandes.

Exemple :

> Get-CIMInstance Win32_OperatingSystem | Select-Object FreePhysicalMemory (1)

FreePhysicalMemory (2)
------------------
          23523216
1 chaînage des commandes Get-CIMInstance et Select-Object pour récupérer la mémoire totale disponible
2 résultat de la séquence de commandes

Commandes Microsoft Powershell (→ cmdlets)

L’interpréteur en ligne de commandes de Microsoft Powershell permet d’exécuter toutes sortes de commandes mais il en est qui lui sont propres : les cmdlets (prononcé “command-lets”).

Ces cmdlets, disponibles nativement ou via des modules additionnels, peuvent être codées dans n’importe quel langage du framework .NET ou dans le langage de script propre à Microsoft Powershell.

Le nom des cmdlets suit une convention de nommage qui consiste en 1 verbe (anglais) suivi d'1 nom, séparés par le caractère -.

Exemples :

  • Get-Item

  • Set-Location

  • Format-Table

  • Write-Output

  • …​

Microsoft Powershell n’est pas sensible à la casse. Les cmdlets seront donc interprétées de la même façon qu’on les saisissent en majuscules, en minuscules ou avec une combinaision de minuscules et de majuscules.

Les cmdlets disposent également d’alias qui facilitent la saisie de ces commandes.

Exemples :

  • cd pour Select-Location

  • echo pour Write-Output

Versions de Powershell

2 éditions de Powershell existent :

  1. Celle nommée Windows Powershell ou Powershell Desktop qui est installée par défaut sur les systèmes Windows depuis sa version 8

  2. Celle nommée Microsoft Powershell ou Powershell Core qu’il faut installer séparément.

Pour faire court, l’édition Windows Powershell est amenée à disparaître au profit de Powershell Core.

Powershell Core est en effet multi-plateforme et open source contrairement à Windows Powershell. C’est également sur cette édition que se concentrent les efforts de développement.

Lorsqu’on apprend Microsoft Powershell il vaut donc mieux s’appuyer sur Powershell Core pour rendre ses compétences plus pérennes.

🞄  🞄  🞄