L’historique des versions de PowerShell
Sommaire
I. Présentation
Dans ce chapitre, nous allons parler des différentes versions de PowerShell puisque ce langage a fortement évolué au fil des années, à tel point que 2018 est entrée dans une nouvelle ère afin de supporter Linux et macOS, en plus de Windows. Aujourd'hui, PowerShell est un langage multiplateforme.
En effet, quand on évoque PowerShell, il y a deux produits distincts : PowerShell et Windows PowerShell, qu'il est important de ne pas confondre.
II. Windows PowerShell vs PowerShell
Windows PowerShell correspond à la version de PowerShell qui est intégrée à Windows et Windows Server, et cette version est basée sur le framework .NET de Microsoft. De ce fait, cette version peut uniquement s'exécuter sur Windows. Aujourd'hui, Windows PowerShell 5.1 est la dernière version de ce produit, et il n'y en aura pas d'autres : PowerShell a pris la suite.
PowerShell, qui s'appelait initialement PowerShell Core, fait référence à la version de PowerShell basée sur la nouvelle génération du framework .NET, appelée .NET Core qui présente l'avantage d'être compatible avec Linux et macOS. De ce fait, PowerShell est disponible sur ces trois systèmes d'exploitation. De nouvelles versions sont publiées régulièrement, et plusieurs fois par an. La dernière version disponible à l'heure où ces lignes sont écrites est PowerShell 7.4.1.
Il est important de préciser que sur une machine Windows, vous pouvez utiliser Windows PowerShell et PowerShell en parallèle. En effet, les chemins d'installation sont différents, tout comme les noms des exécutables et les profils de personnalisation de l'environnement.
III. Récapitulatif des versions de PowerShell
Voici un aperçu des versions majeures et des versions importantes de PowerShell, accompagnées par une description et de leurs dates de sortie respectives.
A. PowerShell 1.0
Sorti en novembre 2006, il a introduit le concept de PowerShell dans Windows et il s'agit de la première version introduite au système d'exploitation Windows. En l'occurrence, cette version était disponible dans Windows Server 2008, bien qu'il soit possible de l'installer sur des systèmes plus anciens tels que Windows Server 2003 et Windows XP SP2/SP3.
B. PowerShell 2.0
En octobre 2009, Microsoft a publié PowerShell 2.0, une version intégrée par défaut dans Windows 7 et Windows Server 2008 R2.
C. PowerShell 3.0
En septembre 2012, Microsoft a publié PowerShell 3.0, et la nouvelle génération de systèmes d'exploitation Windows a pu en profiter directement : Windows 8 et Windows Server 2012.
D. PowerShell 4.0
Sorti en octobre 2013, PowerShell 4.0 est la version présente par défaut dans Windows 8.1 et Windows Server 2012 R2. Il s'agit de la première version de PowerShell à ajouter la prise en charge de PowerShell DSC (Desired State Configuration) qui est une solution puissante pour gérer la configuration des serveurs.
E. PowerShell 5.0
En février 2016, PowerShell 5.0 a été mis en ligne par Microsoft et il s'agit de la version introduite dans la première version de Windows 10.
Ensuite, en août 2016, Microsoft a publié PowerShell 5.1 pour Windows Server 2016 et Windows 10 v1607 (Anniversary Update). Sur les systèmes plus anciens, à partir de Windows 7 et Windows Server 2008 R2 SP1, il était possible d'en profiter également en installant le "Windows Management Framework 5.1" sur sa machine.
Sur les dernières versions de Windows 10, sur Windows 11, et sur Windows Server de Windows Server 2016 à Windows Server 2025, Windows PowerShell 5.1 est toujours intégré par défaut.
F. PowerShell Core 6.0
Sorti en janvier 2018, PowerShell Core 6.0 est une étape importante pour PowerShell puisque cette version est la première à être compatible avec Linux et macOS, en plus de Windows. PowerShell est supporté sur plusieurs distributions Linux, dont Debian, Ubuntu, openSUSE, Fedora, Oracle Linux, ou encore Red Hat Enterprise Linux. En ce qui concerne macOS, PowerShell est supporté à partir de macOS Sierra (10.12).
A ce moment-là, il a été renommé "PowerShell Core" pour le distinguer de la version Windows originale, appelée "Windows PowerShell". Cependant, ce suffixe a été abandonné par la suite.
Cette version n'est pas installée par défaut sur Windows ! C'est à vous de le faire manuellement.
G. PowerShell 7.0
Sorti en mars 2020, PowerShell 7.0 a apporté des améliorations pour les performances ainsi que d'autres fonctionnalités, mais il marque également le retour à la simple dénomination "PowerShell", abandonnant la mention "Core" dans le nom.
Parmi les nouveautés ajoutées à cette version, nous pouvons en citer quelques-unes :
- Ajout d'une nouvelle syntaxe pour les structures conditionnelles "if-else", basée sur le modèle suivant "<condition> ? <commande à exécuter si c'est vrai> : <commande à exécuter si c'est faux".
- Tester si une variable est nulle ($null) avec l'opérateur "??".
- Ajout du paramètre "-Parallel" pour Foreach-Object.
- Ajout d'un système de notification dans la console pour avertir l'utilisateur quand une nouvelle version est disponible.
- Ajout de la prise en charge de "Select-String" pour rechercher facilement dans un fichier (à la façon d'un grep sous Linux).
Ensuite, Microsoft a publié plusieurs versions mineures pour PowerShell :
- PowerShell 7.1, le 11 novembre 2020
- PowerShell 7.2, le 8 novembre 2021, qui ajoute la prise en charge du déploiement des mises à jour via Windows Update
- PowerShell 7.3, le 9 novembre 2022
- PowerShell 7.4, le 16 novembre 2023
- PowerShell 7.4.1, le 11 janvier 2024
Il est à noter que la version actuelle, à savoir PowerShell 7.4.X, est basée sur .NET 8.0. Actuellement, PowerShell 7.5 est en version preview et cette version s'appuie sur .NET 8.0.1.
IV. Cycle de vie de PowerShell
Comme pour les autres produits de chez Microsoft, chaque version de PowerShell est associée à une date de début et une date de fin de support. Microsoft publie des versions LTS de PowerShell, c'est-à-dire avec un support plus long et établi sur une version LTS de .NET Core, mais également des versions intermédiaires.
Les versions intermédiaires peuvent contenir des correctifs de sécurité et de nouvelles fonctionnalités, tandis que les versions LTS reçoivent uniquement des correctifs de sécurité et de bugs. Par exemple, le support de PowerShell 7.4, qui est la version LTS actuelle, prendra fin le 10 novembre 2026.
Du côté de Windows PowerShell, c'est un peu différent, car la prise en charge suit le support du système d'exploitation Windows. Autrement dit, Windows PowerShell 5.1 est toujours pris en charge à ce jour, car cette version est intégrée à Windows 11.
Pour en savoir plus sur la prise en charge de chaque version, notamment sur les différents systèmes, consultez cette page :
V. La feuille de route de PowerShell
Contrairement à ce que propose Microsoft avec les services Microsoft 365, l'entreprise américaine ne propose aucune page qui permet de suivre les nouveautés prévues pour PowerShell, ni même celles en cours de développement.
Il convient de suivre l'actualité pour être informé des nouveautés et de consulter le GitHub officiel de PowerShell pour avoir un aperçu des dernières modifications, notamment en s'intéressant aux versions "Preview".
Dans le prochain chapitre, nous allons évoquer plusieurs bonnes raisons d'apprendre PowerShell, au cas où si vous n'êtes pas encore convaincu !