Présentation de PowerShell 7.0

Aujourd'hui, nous sommes heureux d'annoncer la sortie de la version publique (GA)  de PowerShell 7.0 ! Tout d'abord, nous remercions nos  nombreux contributeurs pour avoir rendu cette version possible en partageant du code, des tests, de la documentation et des commentaires sur les problèmes. PowerShell 7 n'aurait pas été possible sans votre aide.



Qu'est-ce que PowerShell 7?


Pour les débutants, PowerShell 7 est la dernière mise à jour majeure de PowerShell, un outil d'automatisation multiplateforme (Windows, Linux et macOS) et une infrastructure de configuration optimisés pour travailler avec des données structurées (par exemple JSON, CSV, XML, etc.), une API REST et modèles d'objets. PowerShell comprend un shell de ligne de commande, un langage de script orienté objet et un ensemble d'outils pour exécuter des scripts / applets de commande et gérer des modules.

Il y a trois ans, nous avons annoncé PowerShell Core 6 comme une toute nouvelle version de PowerShell. Basé sur .NET Core, PowerShell Core a introduit la prise en charge multiplateforme pour Windows, macOS et Linux, PowerShell Remoting basé sur SSH, la prise en charge REST et JSON considérablement améliorée, les conteneurs Docker officiels et bien plus encore. En outre, il s'agissait de la première version de PowerShell, créée sous une licence open source (MIT), encourageant les amateurs de longue date de PowerShell et les débutants à contribuer directement au code source, aux tests et à la documentation.

Après trois versions réussies de PowerShell Core, nous sommes ravis de voir PowerShell 7, le prochain chapitre du développement continu de PowerShell. Dans PowerShell 7, en plus des nombreuses nouvelles applets de commande / API et corrections de bogues habituelles, nous introduisons un certain nombre de nouvelles fonctionnalités, notamment:

  • Parallélisation de pipeline avec ForEach-Object-Parallel
  • Nouveaux opérateurs:
    • Opérateur ternaire: un? avant JC
    • Opérateurs de chaîne de pipelines: || et &&
    • Déclarations coalescentes nulles: ?? et ?? =
  • Affichage des erreurs simplifié et dynamique et l'applet de commande Get-Error pour rechercher plus facilement les erreurs
  • Un niveau de compatibilité qui permet aux utilisateurs d'importer des modules dans une session Windows PowerShell implicite
  • Notifications de mise à jour automatique
  • Possibilité d'appeler des ressources DSC directement depuis PowerShell 7 (expérimental)

Pour une liste plus complète des fonctionnalités et des correctifs, voir  ici .

La mise à niveau de PowerShell Core 6.x vers 7.0 signifie également la mise à niveau de .NET Core 2.x vers 3.1. .NET Core 3.1 ramène les nombreuses API .NET Framework (en particulier sous Windows), offrant une compatibilité ascendante nettement supérieure avec les modules Windows PowerShell existants. Cela inclut de nombreux modules sous Windows qui nécessitent des fonctionnalités GUI telles que Out-GridView et Show-Command, ainsi que de nombreux modules de gestion des rôles fournis avec Windows. Pour plus d'informations, consultez notre tableau de compatibilité des modules , qui montre comment vous pouvez utiliser les derniers modules modernes qui fonctionnent avec PowerShell 7.

Si vous n'avez pas pu utiliser PowerShell Core 6.x dans le passé en raison de problèmes de compatibilité de module, cela peut être le cas lorsque vous profitez de certaines des fonctionnalités que nous avons déjà fournies depuis le démarrage du projet Core!

Cool! Comment obtenir PowerShell 7?


Pour commencer, consultez la documentation d'installation pour  WindowsmacOS ou  Linux . Il peut y avoir plusieurs méthodes d'installation en fonction de la version de votre système d'exploitation et du format de package préféré.

Si vous savez déjà quoi faire et que vous recherchez simplement un package binaire (que ce soit MSI, ZIP, RPM ou autre), accédez à notre dernière balise de version sur GitHub .

Alternativement, vous pouvez utiliser l'une de nos nombreuses images Docker . Pour plus d'informations sur leur utilisation, consultez notre référentiel PowerShell-Docker .

Quels sont les systèmes d'exploitation pris en charge par PowerShell 7?


PowerShell 7 prend en charge les  systèmes d'exploitation  x64 suivants , notamment:

  • Windows 7, 8.1 et 10
  • Windows Server 2008 R2, 2012, 2012 R2, 2016 et 2019
  • macOS 10.13+
  • Red Hat Enterprise Linux (RHEL) / CentOS 7+
  • Fedora 29+
  • Debian 9+
  • Ubuntu 16.04+
  • openSUSE 15+
  • Alpine Linux 3.8+

De plus, nous prenons en charge les versions ARM32 et ARM64 de Debian et Ubuntu, ainsi que ARM64 Alpine Linux.

Bien que non officiellement prise en charge, la communauté a également fourni des packages pour Arch et Kali Linux .

Si vous avez besoin de prise en charge pour une plate-forme qui ne figure pas dans cette liste, envoyez une demande de distribution à GitHub (bien qu'il convient de noter qu'au final, nous sommes limités au fait que .NET Core 3.1 est pris en charge ).

Attendez, qu'est-il arrivé à PowerShell "Core"?


Comme .NET avec .NET 5 , nous pensons que PowerShell 7 marque la fin de notre chemin vers une compatibilité descendante maximale avec Windows PowerShell. À cet égard, nous pensons que PowerShell 7 et versions ultérieures est le seul PowerShell pris en charge à l'avenir.

PowerShell 7 continuera à figurer dans l'édition Core pour distinguer 6.x / 7.x de Windows PowerShell, mais dans l'ensemble, vous verrez qu'à l'avenir, il sera appelé «PowerShell 7».

Quels produits Microsoft prennent déjà en charge PowerShell 7?


Tout module déjà pris en charge par PowerShell Core 6.x est également pris en charge dans PowerShell 7, notamment:


Sous Windows, nous avons également ajouté le paramètre -UseWindowsPowerShell au module d'importation pour simplifier la transition vers PowerShell 7 pour ceux qui utilisent des modules incompatibles. Cette option crée un module proxy dans PowerShell 7 qui utilise le processus Windows PowerShell local pour exécuter implicitement toutes les applets de commande contenues dans ce module. Pour plus d'informations sur cette fonctionnalité, consultez la documentation du module d'importation .

Pour les modules qui sont toujours incompatibles, nous travaillons avec un certain nombre de collègues pour ajouter la prise en charge intégrée de PowerShell 7, y compris Microsoft Graph, Office 365 et autres.

Azure Cloud Shell a déjà été mis à jour pour utiliser PowerShell 7, tandis que d'autres, tels que les images de conteneur Docker du SDK .NET Core etLes fonctionnalités Azure seront bientôt mises à jour.

Et après?


Nous travaillons déjà dur sur PowerShell 7.1, et vous pouvez vous attendre à sa première prévisualisation dans un avenir proche, pleine de nouvelles fonctionnalités et correctifs qui ne sont pas inclus dans 7.0. Restez à l'écoute pour un blog de feuille de route plus détaillé qui décrit nos recherches actuelles et nos désirs pour 7.1.

Comme indiqué ci-dessus, nous passons également à une fréquence de publication annuelle pour mieux correspondre aux versions .NET et à leur cycle de vie de prise en charge (les versions préliminaires continuent d'être publiées environ chaque mois).

All Articles