Windows PowerShell fait partie intégrante du système d’exploitation Windows. Il s’agit d’un shell de ligne de commande et d’un langage de script utilisé pour automatiser les tâches répétitives chronophages, créer des outils de gestion personnalisés et créer, tester et déployer des solutions pour divers autres problèmes.
La version par défaut de PowerShell qui est pré-emballée dans le système d’exploitation Windows est PowerShell 5.1, ou simplement Windows PowerShell. Mais avec PowerShell 7 déjà publié et stable, n’est-il pas plus logique pour le système d’exploitation Windows d’utiliser la dernière version de PowerShell ? Quels avantages PowerShell 7 offre-t-il de toute façon ? Et est-ce que ça vaut la mise à jour ? Parlons-en!
Qu’est-ce que PowerShell 7 ?
PowerShell 7 est la dernière version LTS de PowerShell. Cette version de PowerShell est développée via le nouveau framework .NET Core, qui permet plusieurs mises à jour majeures que les utilisateurs expérimentés de Windows trouveront utiles.
PowerShell 7 est enregistré et sous licence sous la licence MIT. Il s’agit désormais d’un logiciel open source, où les utilisateurs peuvent librement visualiser, modifier et distribuer leur propre copie du code source du logiciel. Les développeurs peuvent également contribuer aux versions officielles de PowerShell en rejoignant Page GitHub officielle de PowerShell.
Avec son support communautaire, cette version de PowerShell est désormais multiplateforme ! Cela signifie qu’il peut maintenant être installé et utilisé sur Windows, macOS et Linux. Voici une liste des systèmes d’exploitation x64 pris en charge :
- Windows 8.1, 10, 11
- Windows Server 2012, 2012 R2, 2016 et 2019
- macOS 10.13+
- Red Hat Enterprise Linux (RHEL) / CentOS 7
- Fedora 30+
- Debian 9
- Ubuntu LTS 16.04+
Alpine Linux 3.8+ PowerShell 7 est également pris en charge sur diverses distributions ARM32 et ARM64 de Debian, Ubuntu et ARM64 Alpine Linux. Pour les personnes intéressées, il existe également des packages non pris en charge pour Arch et Kali Linux.
Quelles sont les nouvelles fonctionnalités incluses dans PowerShell 7 ?
En plus d’être multiplateforme et open source, PowerShell 7 possède de nombreuses autres nouvelles fonctionnalités qui améliorent encore la productivité. Voici quelques-uns des plus notables :
1. Rétrocompatibilité améliorée
Avec la différence de framework, les versions de Windows PowerShell et de PowerShell utilisant le framework .NET Core auront des incompatibilités. Pour faciliter la transition des utilisateurs, PowerShell 7 intègre désormais le module WindowsCompatibility. Ce module est conçu pour permettre aux modules Windows PowerShell et à de nombreuses commandes CMD populaires de fonctionner dans PowerShell 7.
2. Parallélisation du pipeline avec ForEach-Object
PowerShell 7 a maintenant un paramètre parallèle. Dans Windows PowerShell, chaque objet canalisé utilisant l’applet de commande ForEach-Object sera exécuté un par un. Mais avec le nouveau paramètre Parallèle, tous les objets canalisés sont maintenant exécutés simultanément. Cela améliore considérablement les performances, ce qui peut vous faire gagner du temps.
3. Opérateurs ternaires
Les conditions Windows PowerShell sont effectuées via des instructions if-else. PowerShell 7 rend cela encore plus simple en introduisant des opérateurs ternaires, qui sont essentiellement des versions simplifiées des instructions if-else en utilisant « ? » et « : » dans la syntaxe. Cette fonctionnalité permet une expérience de script plus rapide et plus propre.
4. Opérateurs de la chaîne de pipelines
Les opérateurs de pipeline sont une fonctionnalité importante de Windows PowerShell. Il vous permet de créer des expressions complexes en prenant la sortie d’une applet de commande et en l’utilisant sur une autre applet de commande. Ceci, cependant, est limité car Windows PowerShell ne peut pas traiter les expressions conditionnelles à l’aide d’opérateurs de pipeline réguliers.
PowerShell 7 résout ce problème en introduisant des opérateurs de chaîne de pipeline, qui sont « && » et « || ». Ce nouvel opérateur de pipeline permet à PowerShell d’exécuter des commandes avec des expressions conditionnelles.
L’opérateur && est utilisé pour exécuter la commande de pipeline de droite uniquement si la commande avant l’opérateur réussit. Tandis que l’opérateur || n’exécutera la commande de pipeline de droite que si la commande avant l’opérateur échoue.
Pourquoi PowerShell 7 n’est-il pas la valeur par défaut sous Windows ?
PowerShell 7 est un logiciel multiplateforme open source qui fournit des fonctionnalités qui peuvent considérablement améliorer les performances et la vitesse de script. Alors pourquoi Microsoft n’en fait-il pas le PowerShell par défaut dans Windows ?
Le PowerShell actuel qui est préinstallé avec les nouveaux systèmes Windows est PowerShell 5.1. Il s’agit de la dernière version de PowerShell qui utilise le framework .NET. Bien qu’il soit vrai que ses versions suivantes offrent de meilleures fonctionnalités, Windows PowerShell a toujours un avantage que le nouveau PowerShell n’a pas : une compatibilité descendante complète.
Le premier PowerShell est sorti le 14 novembre 2006. C’était à l’époque où Windows Vista et XP étaient encore les derniers systèmes d’exploitation Windows. Selon recherche d’enlyft, les États-Unis comptent à eux seuls plus de 46 000 entreprises qui utilisent encore Windows XP. Ces entreprises ne peuvent tout simplement pas passer à la dernière version de PowerShell, car cela entraînerait une tonne de problèmes d’incompatibilité descendante, même avec le module WindowsCompatibility intégré de PowerShell 7.
Pour les grandes entreprises et diverses infrastructures critiques (guichets automatiques, fournisseurs d’énergie, chemins de fer, hôpitaux, etc.), retarder le service pendant des semaines ou des mois juste pour reconstruire, tester et déployer des scripts qui fonctionnaient déjà avec PowerShell 5.1 n’est tout simplement pas une option. Peu importe tous les bugs qui peuvent survenir pendant les heures de fonctionnement réelles.
Étant donné que PowerShell 5.1 est le dernier PowerShell construit sur le framework .NET, il est garanti de fonctionner avec toutes les versions précédentes de PowerShell, même celle publiée en 2006.
Devriez-vous passer à PowerShell 7 ?
PowerShell 7 fournit de nombreuses mises à jour utiles qui rendent l’interfaçage et la création de scripts de ligne de commande plus faciles, plus rapides et plus pratiques grâce à sa prise en charge multiplateforme. En revanche, Windows PowerShell offre une rétrocompatibilité complète avec tous les PowerShell hérités avant PowerShell 6. Alors, devriez-vous continuer à utiliser Windows PowerShell ou effectuer une mise à niveau vers le nouveau PowerShell 7 ?
L’avantage de PowerShell 7 est qu’il a été conçu pour coexister avec Windows PowerShell 5.1. Outre le module WindowsCompatibility intégré, PowerShell 7 fournit également un chemin d’installation séparé, un nom d’exécutable, PSModulePath et des journaux d’événements pour s’assurer qu’il n’interfère pas avec Windows PowerShell déjà installé.
Ainsi, pour la grande majorité des personnes souhaitant essayer les nouvelles fonctionnalités de PowerShell 7, elles peuvent certainement le faire tout en conservant leur Windows PowerShell par défaut. Si vous êtes curieux de savoir si le nouveau PowerShell est fait pour vous, vous devez absolument essayer le nouveau PowerShell.
Bien que PowerShell 7 offre une bonne rétrocompatibilité, il y aura toujours des divergences en raison de leurs différences dans le cadre. Si vous travaillez dans une entreprise ou une organisation qui s’appuie fortement sur des outils et des programmes personnalisés créés à partir de Windows PowerShell, la migration du système de l’entreprise vers PowerShell 7 n’est peut-être pas une bonne idée.
PowerShell 7 a fourni de nombreuses mises à jour, mais a également supprimé un certain nombre de modules et d’applets de commande hérités. Si vous êtes une personne déjà satisfaite du PowerShell par défaut, il n’y a vraiment aucune raison de migrer, surtout si vous n’avez pas le temps de lire la documentation.
PowerShell 7 rend les scripts plus rapides
PowerShell 7 est l’une des dernières versions stables de PowerShell avec support à long terme (LTS). Il fournit un moyen plus rapide et plus facile d’utiliser PowerShell, même si vous utilisez d’autres systèmes d’exploitation comme macOS ou Linux. Bien que la lecture de sa documentation puisse prendre un peu de temps, vous gagnerez finalement plus de temps une fois que vous maîtriserez les nouvelles mises à jour.