IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft annonce la disponibilité générale de PowerShell Core 6.0
La première version de la nouvelle édition multiplateforme de PowerShell

Le , par Michael Guilloux

793PARTAGES

10  0 
PowerShell ou Windows PowerShell est une suite logicielle développée par Microsoft qui intègre une interface en ligne de commande, un langage de script nommé PowerShell ainsi qu'un kit de développement. Il est inclus dans Windows 7 à Windows 10 (y compris les versions grand public) et s'appuie sur le framework Microsoft .NET. Avec le passage de .NET Framework à .NET Core, Microsoft a décidé de développer une version de PowerShell qui va utiliser .NET Core 2.0 comme runtime et non .NET Framework. C’est ainsi qu’en août 2016, le géant du logiciel a annoncé le passage de PowerShell en open source et lancé PowerShell Core. Après quelques préversions, Microsoft a annoncé hier la disponibilité générale et la prise en charge de PowerShell Core 6.0. Il s'agit de la première version de la nouvelle édition de PowerShell qui est multiplateforme, open source et conçue pour les environnements hétérogènes et le cloud hybride.

« PowerShell Core est un outil / framework d'automatisation et de configuration multiplateforme (Windows, Linux et macOS) qui fonctionne bien avec vos outils existants et qui est optimisé pour traiter les données structurées (par exemple JSON, CSV, XML, etc.), les API REST et des modèles d'objets. Il comprend un shell en ligne de commande, un langage de script associé et une infrastructure pour le traitement des cmdlets », explique Microsoft sur la page GitHub du projet. Il s’agit en fait d’un fork de la base de code de PowerShell (version 5.1) auquel des changements ont été apportés pour en faire un outil multiplateforme.

La différence entre Windows PowerShell et PowerShell Core

Il y a maintenant deux éditions de PowerShell : Windows PowerShell qui est l'édition de PowerShell basée sur .NET Framework (parfois appelé "FullCLR" ; et PowerShell Core qui est l'édition de PowerShell construite sur .NET Core (parfois appelé simplement "CoreCLR".

Windows PowerShell :
  • c'est le PowerShell qui a été largement utilisé pendant la dernière décennie. Mais en raison de sa dépendance à .NET Framework, Windows PowerShell n'est disponible que sous Windows ;
  • les versions publiées de Windows PowerShell incluent les versions 1.0, 2.0, 3.0, 4.0, 5.0 et 5.1 ;
  • Windows PowerShell est disponible en tant que composant intégré dans le client Windows et Windows Server ;
  • Windows PowerShell est lancé en tant que powershell.exe ;
  • sur Windows PowerShell 5.0/5.1, la valeur de $PSVersionTable.PSEdition est définie à Desktop ;
  • toute utilisation des fonctionnalités basées sur .NET (par exemple, applets de commande C#, Add-Type et invocation de méthodes .NET statiques) repose sur l'environnement d'exécution .NET Framework. Cela signifie que l'utilisation de .NET par Windows PowerShell est limitée aux fonctionnalités exposées par .NET Framework et .NET Standard.

PowerShell Core :
  • il est multiplateforme, disponible sur Windows, macOS et Linux, grâce à la nature multiplateforme de .NET Core ;
  • PowerShell Core est lancé en tant que pwsh.exe sous Windows et pwsh sous macOS et Linux
  • sur PowerShell Core, la valeur de $PSVersionTable.PSEdition est définie à Core ;
  • il faut noter que bien que PowerShell Core 6.0 soit multiplateforme, il existe également un PowerShell Core 5.0/5.1 publié exclusivement en tant que partie de Microsoft Nano Server ;
  • toute utilisation des fonctionnalités basées sur .NET (par exemple, applets de commande C#, Add-Type et invocation de méthodes .NET statiques) repose sur l'environnement d'exécution .NET Core. Cela signifie que PowerShell Core est limité aux fonctionnalités exposées par .NET Core et .NET Standard.

Pour ceux qui se demandent si PowerShell Core pourrait affecter leur installation de Windows PowerShell, il faut préciser que PowerShell Core peut complètement fonctionner côte à côte avec Windows PowerShell sans l'affecter, et le nom binaire de PowerShell Core a été également changé de powershell(.exe) en pwsh(.exe). Cette modification fournit aux utilisateurs un moyen déterministe d'exécuter PowerShell Core sur des machines pour prendre en charge les installations Windows PowerShell et PowerShell Core côte à côte.

Plateformes supportées par PowerShell Core

PowerShell Core est officiellement pris en charge sur les plateformes suivantes : Windows (7, 8.1 et 10), Windows Server (2008 R2, 2012 R2, 2016), Windows Server Semi-Annual Channel, Ubuntu (14.04, 16.04 et 17.04), Debian (8.7+ et 9), CentOS 7, Red Hat Enterprise Linux 7, OpenSUSE 42.2, Fedora 25 et 26 et macOS 10.12+.

La communauté PowerShell Core a également contribué avec des paquets pour les plateformes suivantes, mais ils ne sont pas officiellement pris en charge : Arch Linux, Kali Linux, AppImage (fonctionne sur plusieurs plateformes Linux). Microsoft a également des versions expérimentales (non supportées) pour les plateformes suivantes : Windows sur ARM32/ARM64, Raspbian (Stretch).

PowerShell Core et les modules

Pour les modules qui fonctionnent avec PowerShell Core, Microsoft explique dans une FAQ qu'avec la sortie de PowerShell Core 6.0, ont été livrés les ensembles de modules intégrés suivants :

  • CimCddlets
  • Microsoft.PowerShell.Archive
  • Microsoft.PowerShell.Diagnostics
  • Microsoft.PowerShell.Host
  • Microsoft.PowerShell.Management
  • Microsoft.PowerShell.Security
  • Microsoft.PowerShell.Utility
  • Microsoft.WSMan.Management
  • PackageManagement
  • PowerShellGet
  • PSDesiredStateConfiguration
  • PSDiagnostics
  • PSReadLine

Vous pouvez parcourir la référence de ces modules via le PowerShell Module Browser. Pour voir les commandes disponibles dans ces modules, vous pouvez aussi lancer Get-Command : Get-Command -Module Microsoft.PowerShell.Management.
Microsoft précise toutefois que certaines applets de commande fournies avec Windows PowerShell dans ces modules ne sont pas disponibles aujourd'hui dans PowerShell Core.

Pour les modules first-party de Microsoft, à moins qu'ils soient explicitement pris en charge, il n'existe aucune garantie qu'ils fonctionneront avec PowerShell Core. Ces modules appartiennent généralement à l'une des trois catégories suivantes : modules livrés avec le client Windows ou Windows Server ; modules livrés en tant que partie d'un produit Microsoft ; modules livrés sur la galerie PowerShell. Microsoft assure toutefois qu'en raison des garanties de .NET Standard et CDXML, de nombreux modules conçus pour Windows PowerShell sont hautement compatibles avec PowerShell Core. Il faut également savoir que les modules de la galerie PowerShell qui fonctionnent avec PowerShell Core peuvent être trouvés en faisant une recherche dans la galerie pour le tag PSEdition_Core.

Avenir de Windows PowerShell

Qu'adviendra-t-il à présent de Windows PowerShell ? À cette question, Microsoft a répondu que Windows PowerShell est toujours utile et pris en charge. Les versions 3.0, 4.0 et 5.1 continueront d'être prises en charge sur les versions prises en charge de Windows et de Windows Server. Microsoft rappelle aussi que bien que Windows PowerShell 2.0 soit toujours supporté, il est désormais déconseillé. Il est donc recommandé de migrer les charges de travail vers les versions plus récentes de PowerShell.

Pour revenir à l'avenir de Windows PowerShell, Microsoft note cependant qu'il n'est actuellement pas prévu de lui apporter de nouvelles fonctionnalités. Cela signifie, d'après l'équipe PowerShell que le risque de régression sera très faible pour Windows PowerShell, et que vous pouvez donc le considérer comme une plateforme stable pour vos charges de travail existantes.

Rappel : une extension PowerShell pour Visual Studio Code disponible depuis quelques mois

Jusqu’à l’ouverture de PowerShell, Windows PowerShell Integrated Scripting Environment (PowerShell ISE) a été l'éditeur officiel de PowerShell pendant la majeure partie de l'histoire de Windows PowerShell. Mais maintenant, avec l'avènement de la version multiplateforme de PowerShell (PowerShell Core), il fallait trouver un nouvel éditeur officiel qui serait disponible sur tous les OS et versions d'OS supportés. Visual Studio Code a été choisi pour être cet éditeur et depuis lors, l’équipe PowerShell a commencé à développer une extension pour permettre aux développeurs d’écrire et déboguer les scripts PowerShell en utilisant Visual Studio Code. En mai dernier, Microsoft a annoncé la disponibilité de la version 1.0 de l'extension PowerShell pour Visual Studio Code sur Windows, macOS et Linux. Cette extension fournit un riche support du langage PowerShell dans l’éditeur de code et vient avec un certain nombre de fonctionnalités, y compris :

  • la mise en évidence de syntaxe et un formateur de code hautement configurable basé sur les meilleures pratiques de la communauté ;
  • les snippets de code ;
  • IntelliSense pour les cmdlets ;
  • l'analyse de script intégrée fournie par PowerShell Script Analyzer, un analyseur de code statique pour les modules et scripts Windows PowerShell ;
  • Go to Definition pour les cmdlets et variables ;
  • Find References pour les cmdlets et variables ;
  • exécution d’une sélection du code PowerShell à l'aide de la touche F8 ;
  • lancement de l'aide en ligne pour le symbole sous le curseur en utilisant Ctrl+F1 ;
  • expérience de développement interactive de style PowerShell ISE avec la console PowerShell intégrée ;
  • etc.

Il faut toutefois préciser que PowerShell ISE restera – et il n’y a aucune intention de le supprimer – dans Windows avec le support de Windows PowerShell.

Sources : Blog de l’équipe PowerShell, Nouveautés dans PowerShell Core 6.0

Et vous ?

Utilisez-vous PowerShell ?
Que pensez-vous du lancement de cette version multiplateforme ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Neckara
Inactif https://www.developpez.com
Le 24/07/2018 à 8:43
Qu'est-ce que PowerShell apporte de plus que bash ?
8  0 
Avatar de kriska
Membre du Club https://www.developpez.com
Le 24/07/2018 à 13:42
L'intérêt selon moi est de faciliter le rapprochement de Linux et Windows. Cela fait un moment que Windows va dans ce sens (Linux embarqué sous Win 10, Visual Studio Code, passage de framework en open source et sous Linux, etc).
La cible n'est pas les utilisateurs Linux mais plutôt les utilisateurs windows qui migrent des parties serveurs sous Linux et réutilisent leurs scripts par exemple.

Après tout rien n'oblige à l'utiliser (je continuerai en bash ou plutôt actuellement en Python) mais je trouve ça bien qu'ils le fassent.
A ce propos en y réfléchissant, ils souhaitent peut-être devenir comme un Python like à terme : un language de script/programmation et interpréteur dédié multiplateforme
4  0 
Avatar de Pierre GIRARD
Expert éminent https://www.developpez.com
Le 24/07/2018 à 8:53
J'allais le demander. Autant cet outil est utile sur Windows, autant les UNIX/LINUX sont largement fournis (BSH, CSH, KSH, BASH). Les administrateurs ne vont certainement pas reprendre tous leurs scripts pour repartir à zéro avec PowerShell.
3  0 
Avatar de Bono_BX
Membre confirmé https://www.developpez.com
Le 24/07/2018 à 10:36
Citation Envoyé par Pierre GIRARD Voir le message
J'allais le demander. Autant cet outil est utile sur Windows, autant les UNIX/LINUX sont largement fournis (BSH, CSH, KSH, BASH). Les administrateurs ne vont certainement pas reprendre tous leurs scripts pour repartir à zéro avec PowerShell.
Alors, pour répondre à ta question ... à peu prêt rien du tout ! Les shells Unix/Linux sont de base très complets.
Après, Power Shell est beaucoup plus proche d'un langage de programmation que d'un shell (attention, avis strictement personnel), et je trouve que Microsoft s'est loupé sur ce coup là.
On peut voir comme avantage l'interfaçage simple avec les applications, principalement en .Net (et non, le binding .Net est loin d'être risible, même si des bibliothèques font mieux que celui de base). Ca peut être intéressant dans le cadre de SQL Server sous Linux, qui prend des scripts PowerShell.

Après ... c'est sûr que ça va vite être limité, à mon avis.
1  0 
Avatar de Aizen64
Membre confirmé https://www.developpez.com
Le 15/01/2018 à 21:51
Bonsoir,

ce n'est pas CimCmdlets au lieu de CimCddlets ?

J'ai installé une version preview sous OS X il y a quelques jours et n'ai pas réussi à faire fonctionner Get-CimInstance pour extraire des infos de l'OS ou du matos.
0  0 
Avatar de hotcryx
Membre extrêmement actif https://www.developpez.com
Le 24/07/2018 à 9:30
Citation Envoyé par Neckara Voir le message
Qu'est-ce que PowerShell apporte de plus que bash ?
Le binding .NET
1  1 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 24/07/2018 à 15:18
C'est l'outil intégré à Windows qui se raproche le plus du shell sous Linux, c'est un peu mieux que "cmd.exe" mais quel outil horrible sérieusement, c'est lent, ça lance des bips cacophoniques tout le temps (lorsque l'on appuie sur la touche backslash et qu'il n'y a plus rien à supprimer par exemple), et il manque de nombreuses fonctionnalités de base que l'on pourrait retrouver sous le shell Linux. Je remercie Microsoft pour ses outils comme Visual Code, mais ce PowerShell n'est clairement pas un cadeau pour qui que ce soit.
1  1 
Avatar de Aeson
Nouveau Candidat au Club https://www.developpez.com
Le 16/09/2018 à 10:08
Pas si cross-platforme que ca... Pour attaquer un AD depuis un Linux il faut le faire via une session ssh sur un Windows qui lui attaquera l'AD....
0  0 
Avatar de Mklord34
Membre à l'essai https://www.developpez.com
Le 17/09/2018 à 15:03
Si vous voulez tester vos connaissances il y a "Quiz My Powershell" sous Android
Jusqu'à 1000 Questions....
bonne journée

Alexandre
0  0