PowerShell Core 6.1 est disponible
PowerShell débarque sur Linux et Mac en version Alpha,
Microsoft emprunte à nouveau la voie de l'open source
« Vous avez entendu Satya Nadella déclarer que “Microsoft aime Linux”, et cela n’a jamais été aussi vrai qu’aujourd’hui », a rappelé Jeffrey Snover de Microsoft. Après avoir rappelé l’ouverture progressive de Microsoft vers Linux, notamment avec le fait que près d’une machine virtuelle sur trois sur Azure tournent sur Linux, l’ajout de Bash sur Windows 10 ou l’arrivée de SQL Server sur Linux, il a annoncé que « PowerShell est open source et désormais disponible sur Linux ».
Pour rappel, PowerShell est une suite logicielle développée par Microsoft qui intègre une interface en ligne de commande, le langage de script PowerShell ainsi qu'un kit de développement et s’appuie sur le framework Microsoft .NET. Cette suite est conçue pour aider les professionnels à contrôler et automatiser les tâches d’administration sur les systèmes d’exploitation Windows ainsi que sur les applications qui s’y exécutent. « PowerShell sur Linux est maintenant conçu pour permettre aux clients de se servir des mêmes outils et aux mêmes personnes de tout gérer de partout. Pour un début, il est disponible sur Ubuntu, Centos, ainsi que Red Hat. Il fonctionne également sur Mac OS X », a indiqué Jeffrey Snover qui a précisé que plus de plateformes seront ajoutées à l'avenir. Des builds Alpha sont disponibles en téléchargement sur GitHub.
« Maintenant, les utilisateurs de PowerShell sur Windows et Linux, actuels comme nouveaux et même les développeurs d’applications, peuvent profiter d’un riche langage de script interactif ainsi que d'une gestion de l'automatisation et de la configuration hétérogène qui fonctionne bien avec leurs outils existants. Vos compétences PowerShell sont maintenant encore plus commercialisables, et vos équipes Windows et Linux, qui peuvent avoir eu à travailler séparément, peuvent maintenant travailler ensemble plus facilement », a-t-il avancé.
Il faut rappeler que ce déploiement se fera de manière progressive. Comme l’explique Jeffrey Snover, « nous en sommes encore au début et en mode apprentissage. Nous avons commencé par rendre open source de petites portions de PowerShell et nous discutons avec quelques-uns de nos partenaires qui ont de l’expérience en open source pour comprendre ce qu’il faut pour mener à bien cette initiative. De ce que nous avons appris, il est important que les utilisateurs individuels puissent utiliser Git pour vérifier le code, effectuer des modifications, tout compiler sur leurs machines et effectuer tous les tests pour vérifier que leurs changements n’ont rien fait planter ». Microsoft travaille sur un modèle de gouvernance afin que les contributions de la communauté puissent être progressivement incorporées au produit.
Tandis que PowerShell est porté sur Linux, Microsoft a effectué quelques changements parmi lesquels :
- la création de PowerShell Service Editor, pour permettre aux utilisateurs de choisir entre une gamme d’éditeurs (pour le moment ils n’auront à faire de choix qu’entre VS Code et Sublime, d’autres éditeurs seront proposés par la suite) ;
- PowerShell Remoting Protocol (MS-PSRP) va se servir ‘OpenSSH comme transport natif. Les utilisateurs auront le choix entre SSH et WINRM comme transport.
Il faut rappeler que, l’année dernière, Angel Calvo, responsable du Group Software Engineering de l’équipe PowerShell chez Microsoft, a avancé que « la combinaison de PowerShell et SSH fournira une solution robuste et sécurisée pour automatiser et gérer à distance les systèmes Linux et Windows » lorsqu’il annonçait que l’équipe PowerShell rejoignait la communauté OpenSSH pour apporter le protocole SSH à l'interopérabilité Windows - Linux. L’une des requêtes les plus populaires que l’équipe PowerShell a reçues était l’utilisation du protocole Shell Secure et Shell session (SSH) pour interopérer entre Windows et Linux – à la fois pour les connexions et les gestions de Windows via SSH depuis Linux, mais également pour les connexions et les gestions de Linux via SSH depuis Windows -.
:fleche: dépôt GitHub
Source : blog Azure
Voir aussi :
:fleche: L'équipe PowerShell de Microsoft rejoint la communauté OpenSSH, pour apporter le protocole SSH à l'interopérabilité Windows - Linux
Powershell/Linux et Bash/Windows
Bonjour
Autant je vois bien l'intérêt d'un powershell/Linux, pour faciliter l'administration d'un parc hétérogène (genre gérer un exchange depuis la console d'administration Linux), autant que pense que bash/windows est franchement contre-productif, sujet à de nombreuses failles de sécurité, et totalement inutile. Quel windowsien voudrait utiliser le bash à la place de powershell ? Quel linuxien voudrait gérer du windows avec un outil non conçu pour ?
Microsoft annonce la disponibilité générale de PowerShell Core 6.0
Microsoft annonce la disponibilité générale de PowerShell Core 6.0
la première version officielle de la nouvelle édition multiplateforme de PowerShell
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 ?
:fleche: Utilisez-vous PowerShell ?
:fleche: Que pensez-vous du lancement de cette version multiplateforme ?
PowerShell, le langage de Shell de Microsoft, est maintenant disponible sur Linux en tant que paquet snap
PowerShell, le langage de Shell de Microsoft, est maintenant disponible sur Linux en tant que paquet snap
pour une meilleure prise en charge des distributions Linux
Microsoft vient d'annoncer la disponibilité de son langage de Shell, PowerShell, sous Linux en tant que paquet snap. Cette version de PowerShell pour Linux est le résultat de l'ouverture de PowerShell il y a deux ans.
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 spécialement conçu pour les administrateurs système et les utilisateurs avancés afin d’automatiser rapidement l’administration de plusieurs systèmes d’exploitation et les processus liés aux applications qui s’exécutent sur ces systèmes d’exploitation.
PowerShell est initialement inclus dans Windows 7 à Windows 10 (y compris les versions grand public) et s'appuie sur le framework Microsoft .NET. Mais 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 sous une nouvelle version baptisée PowerShell Core.
Après quelques préversions, Microsoft a annoncé en janvier dernier 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 et open source. Dans un récent billet de blog, Microsoft explique que l'objectif est de faire de PowerShell Core un langage omniprésent pour la gestion du cloud hybride. C'est pourquoi l'entreprise a travaillé pour le rendre, autant que possible, disponible sur de nombreux systèmes d'exploitation (Windows, macOS, distributions Linux) et architectures.
Le nouveau PowerShell n'était toutefois pas facilement disponible sur les distributions Linux, car la livraison d'applications via les anciennes méthodes d'empaquetage rpm et deb est difficile. C'est pour cela que Microsoft lance aujourd'hui PowerShell Core en tant que paquet snap.
Les paquets snap sont des applications conteneurisées qui peuvent être installées sur de nombreuses distributions Linux sans modification, et par rapport aux paquets Linux traditionnels (par exemple deb ou rpm), ils présentent un certain nombre d'avantages. Comme l'explique Microsoft, les paquets snap transportent toutes leurs dépendances, de sorte que vous n'avez pas besoin de vous soucier des versions spécifiques des bibliothèques partagées installées sur votre machine. Ils peuvent également être installés sans accorder à l'éditeur l'accès root à la machine hôte, mais en plus, ils sont plus « sûrs à exécuter », car ils n'interagissent pas avec d'autres applications ou fichiers système sans votre permission. À cela s'ajoute le fait que les mises à jour de paquets snaps ont lieu automatiquement.
Le géant du logiciel précise toutefois qu'il va continuer à supporter les paquets Linux « traditionnels », même si le snap PowerShell Core se présente un meilleur choix.
Sources : Blog Microsoft, Blog Ubuntu
Et vous ?
:fleche: Pensez-vous qu'avec le paquet snap, PowerShell Core pourrait-il être aussi intéressant que Bash en tant que langage de Shell pour Linux ? Pourquoi ?
Voir aussi :
:fleche: Vous pouvez maintenant utiliser Linux pour administrer à distance des machines Windows, avec un accès distant PowerShell via SSH
:fleche: Microsoft annonce la disponibilité générale de PowerShell Core 6.0, la première version de la nouvelle édition multiplateforme de PowerShell
:fleche: Microsoft annonce la disponibilité de PowerShell Module Browser, une application Web de recherche de cmdlets
:fleche: Microsoft annonce la disponibilité de la version 1.0 de l'extension PowerShell pour Visual Studio Code sur Windows, macOS et Linux
:fleche: Meltdown et Spectre : un outil PowerShell est disponible, il permet de faire l'état des lieux des protections sous Windows
PowerShell Core 6.1 est disponible
PowerShell Core 6.1 est disponible :
support de .NET Core 2.1, compatibilité avec les modules spécifiques à Windows, cmdlets et rendu Markdown et plus
Microsoft a annoncé hier la dernière version de PowerShell Core (6.1), l'édition open source de PowerShell qui fonctionne à la fois sous Linux, macOS et Windows.
Pour rappel, 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.
Mais 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é, en janvier dernier, 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 open source et multiplateforme de PowerShell. La version 6.1 est donc la première mise à jour de PowerShell Core depuis sa disponibilité générale.
La plus grande fonctionnalité de cette mise à jour est de loin la compatibilité des modules Windows avec PowerShell Core. Cela signifie que vous pouvez désormais exécuter nativement ces modules/cmdlets avec PowerShell Core et faire facilement une transition depuis Windows PowerShell. Cela a été possible en ajoutant le pack de compatibilité Windows pour .NET Core à PowerShell Core 6.1 ; ce qui permet à PowerShell Core d'utiliser plus de 1900 cmdlets fournies avec Windows 10 October 2018 Update et Windows Server 2019.
Mais il y a encore bien d'autres nouveautés dans cette version de PowerShell Core, notamment :
Support de .NET Core 2.1
PowerShell Core 6.1 est passé à .NET Core 2.1 (disponible depuis le mois de mai), ce qui permet d'introduire plusieurs améliorations à PowerShell Core, y compris des améliorations de performances ; la prise en charge d'Alpine Linux (préversion) ; le support bientôt disponible de .NET Core Global Tools (un nouveau mécanisme de déploiement et d'extensions introduit par .NET Core 2.1 pour ses outils) ; et Span <T>.
Amélioration des performances
PowerShell Core 6.0 avait déjà apporté des améliorations de performances significatives. PowerShell Core 6.1 continue donc dans ce sens en améliorant la vitesse de certaines opérations. Par exemple, Group-Object a été accéléré de 66 %. De même, les temps d'exécution de certains scénarios de tri ont été améliorés de plus de 15 %. Notons encore que l'opération Import-Csv a aussi été accélérée de manière significative. Enfin, la conversion de JSON en PSObject a été accélérée de plus de 50 % depuis Windows PowerShell.
cmdlets et rendu Markdown
Rappelons que Markdown est un standard pour la création de documents en texte lisible avec un formatage de base qui peut être rendu en HTML. Dans cette version de PowerShell Core, Microsoft dit avoir ajouté des cmdlets qui vous permettent de convertir et d'afficher des documents Markdown dans la console. Il s'agit entre autres de ConvertFrom-Markdown ; Get-MarkdownOption ; Set-MarkdownOption ; et Show-Markdown.
Show-Markdown, par exemple, génère un fichier Markdown dans la console :
Et bien plus...
L'équipe PowerShell a implémenté de nombreux petits changements pour rendre PowerShell Core plus stable et plus rapide. Il convient aussi de noter que PowerShell Core 6.1 introduit des flags pour les fonctionnalités expérimentales, pour permettre aux utilisateurs d'activer des fonctionnalités qui n'ont pas encore été finalisées. Soulignons toutefois qu'elles ne sont pas prises en charge et peuvent avoir des bogues. PowerShell Core 6.1 vient aussi avec la prise en charge des dernières versions de Windows, MacOS et Linux.
Sources : Blog PowerShell, Notes de version PowerShell Core 6.1
Et vous ?
:fleche: Utilisez-vous déjà PowerShell Core ?
:fleche: Que pensez-vous de ces nouveautés ?
Voir aussi :
:fleche: PowerShell est maintenant disponible sur Linux en tant que paquet snap, pour une meilleure prise en charge des distributions Linux
:fleche: Vous pouvez maintenant utiliser Linux pour administrer à distance des machines Windows, avec un accès distant PowerShell via SSH
:fleche: Microsoft annonce la disponibilité générale de PowerShell Core 6.0, la première version de la nouvelle édition multiplateforme de PowerShell
:fleche: Microsoft annonce la disponibilité de PowerShell Module Browser, une application Web de recherche de cmdlets
:fleche: Microsoft annonce la disponibilité de la version 1.0 de l'extension PowerShell pour Visual Studio Code sur Windows, macOS et Linux