PowerShell 7 est disponible pour Windows, macOS et Linux

PowerShell 7 est disponible pour Windows, macOS et Linux

PowerShell 7 est disponible pour Windows, macOS et Linux

La nouvelle version majeure du shell introduit bon nombre de nouveautés, dont la plus importante est le passage à .NET Core 2.x à 3.1, provoquant un afflux d’API du framework .NET. Résultat, une compatibilité beaucoup plus importante avec les modules PowerShell existants de Windows.

« Cela comprend de nombreux modules sous Windows qui nécessitent des fonctionnalités d'interface graphique comme Out-GridView et Show-Command, ainsi que de nombreux modules de gestion des rôles livrés avec Windows », indique Microsoft.

PowerShell 7 introduit la parallélisation du pipeline avec ForEach-Object -Parallel, les opérateurs de chaîne de pipeline (&& et ||), l’opérateur ternaire (a ? b : c), d'assignation nulle et de coalescence (?? et ??=), les notifications de nouvelle version, une nouvelle « vue simplifiée et dynamique des erreurs » ou encore la commande Get-Error.

Les systèmes pris en charge sont nombreux, mais uniquement en x64 : 

  • Windows : 7, 8.1 et 10, Server 2008 R2, 2012, 2012 R2, 2016 et 2019 
  • macOS 10.13 et versions ultérieures
  • Linux : RHEL/CentOS 7, Fedora 29, Debian 9, Ubuntu 16.04, openSUSE 15, Alpine Linux 3.8 et versions ultérieures

Microsoft précise que si Arch et Kali Linux ne sont pas officiellement supportés, la communauté fournit déjà des paquets. Les moutures ARM32 et ARM64 de Debian sont prises en charge, de même que la version ARM64 d’Alpine Linux.

Notez que PowerShell 7 représente l’unification des branches de développement. Le projet PowerShell Core en tant que tel n’existe plus, exactement comme le prévoit Microsoft avec le framework .NET 7. Bien que la mention Core puisse encore apparaître, ce sera uniquement dans un contexte de différenciation avec Windows PowerShell.

Commentaires (26)


Pour ceux qui ont déjà Powershell 6, il suffit de taper dans une console autre que PowerShell 6 :



dotnet tool update –global PowerShell



Si vous êtes encore sous PowerShell 5 (ou précédent) :



dotnet tool install –global PowerShell



Dans tous les cas, .NET Core 3.1 doit d’abord avoir été installé.



Source :

https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powersh…


(Vraie question sérieuse) Est-ce que quelqu’un, qui utilise PowerShell sous Linux, peut me donner une raison ou un avantage à l’utiliser plutot que Bash(ZSH, Fish, ) ?








dirtyvader a écrit :



(Vraie question sérieuse) Est-ce que quelqu’un, qui utilise PowerShell sous Linux, peut me donner une raison ou un avantage à l’utiliser plutot que Bash(ZSH, Fish, ) ?





Il y’a quelques années j’utilisais PowerShell pour piloter des comptes utilisateurs ActiveDirectory, des serveurs IIS etc…



J’imagine que c’est pratique pour ceux qui ont leur pc client sous Linux mais hébergent des trucs sur Azure ou Office365, Sharepoint etc… avec les bilbiothèques de classe fournies.









dirtyvader a écrit :



(Vraie question sérieuse) Est-ce que quelqu’un, qui utilise PowerShell sous Linux, peut me donner une raison ou un avantage à l’utiliser plutot que Bash(ZSH, Fish, ) ?





Powershell en tant que shell n’apporte rien. L’intérêt c’est le langage objet pour le scripting.



Encore faut t’il que que Dotnet soit installé….



C’est le cas sur Windows, sous Linux ce n’est pas le cas par défaut.


Personnellement, je ne fais pratiquement que du Linux et je trouve PowerShell très intéressant. Par rapport aux shells classiques les fonctionnalité sont clairement un cran en dessus, avec notamment des données structurées et l’approche objet.



Cependant, pour l’instant, je garde juste un œil dessus car en pratique je n’ai pas trouvé le temps de m’y investir.








dirtyvader a écrit :



(Vraie question sérieuse) Est-ce que quelqu’un, qui utilise PowerShell sous Linux, peut me donner une raison ou un avantage à l’utiliser plutot que Bash(ZSH, Fish, ) ?





Je l’utilise depuis le début c’est un plaisir d’écrire mes scripts une seule fois 



Quelqu’un sait comment on fait pour configurer un colorscheme avec WindowsTerminal (du store) ? J’ai bien essayé de modifier le profile.json… mais rien y fait, j’ai toujours le fond noir et les couleurs par défaut…


Merci <img data-src=" />


Merci pour vos réponses, effectivement, je n’ai absolument pas l’utilité de PS dans mon cas. Workstations linux, tous mes serveurs linux, je pratiques bash depuis 10 ans et écris tous mes scripts en python (objet aussi), voir meme en go pour des gros scripts destinés à tourner avec cron.


On est obligé de l’installer à la main ? ça ne serait pas fournit via windows update ou dans la version de base win 10 20H2 … ?


Le jour où l’on verra une console RSAT sous GNU/Linux, capable de gérer un AD sous smbd/nmbd, on pourra considérer que microsoft fait réellement un petit effort d’ouverture vers le libre.








teddyalbina a écrit :



Je l’utilise depuis le début c’est un plaisir d’écrire mes scripts une seule fois&nbsp;





Et inversement, vu que powershell imite les shell Linux et les commandes de leur rootfs… mais avec des options incompatibles (un simple ls -ll passe pas)… quand on a tout écrit sous un des originaux Linux on ne va pas se faire le déplaisir de tout ré-écrire avec l’imitation.



Puis la syntaxe shell, même si on peut faire des choses assez complexes, pique un peu les yeux quand même. Donc pour des choses ou cela trouve ses limites, Python est désormais partout et même s’il a aussi ses défauts c’est plus lisible.



Ce n’est pas faisable via WinRM et Powershell justement?


Il faut comparer l’équivalent.

L’équivalent à Powershell Core sous Unix, c’est Python, pas Bash.



Le gros avantage reste le concept objet/Méthode qui permet une réutilisation.








dirtyvader a écrit :



Merci pour vos réponses, effectivement, je n’ai absolument pas l’utilité de PS dans mon cas. Workstations linux, tous mes serveurs linux, je pratiques bash depuis 10 ans et écris tous mes scripts en python (objet aussi), voir meme en go pour des gros scripts destinés à tourner avec cron.





Avoir une machine dont le job est d’orchestrer est très simple en powershell, et les pssession sont un outil d’une puissance quasi inégalée.

par exemple, si tu as un fichier csv qui contient serveur log pass et que tu veux exécuter sur chaque serveur un df et injecter le résultat dans une base sql, ben ça se fait en 3mn…



Un outil du genre Ansible est redoutablement efficace pour répondre à un besoin de déploiement sur un parc de ce type.



Surtout qu’il permet de ne pas avoir connaissance du secret car pouvant s’interfacer avec un solution de type Vault ou même tout simplement chiffrer les fichiers de variables.


au vu des commentaires, PS à l’air sympa… mais j’arrive pas du tout à accrocher.

et comme les serveurs windows auxquels j’ai accès ne sont pas en version core, je peux toujours me démerder avec du batch et/ou quelques clics… ce qui ne m’aide pas à m’y intéresser plus que ça (et sous linux, je reste sur du bash ou sh, qui sont par défaut sur les machines)


Pour vous donner un exemple d’utilisation, avec DevOps, on peut faire des build automatique avec des déploiements automatique.

Et DevOps utilise des scripts powershell pour faire tout ça. En fait, c’est plutôt à vous de créer ces scripts. Vous pouvez le faire avec des machines sous azure, des machines physique ou des dockers via des agents DevOps.

Et ces différentes machines peuvent être sous Windows, Linux ou Mac OS.



En bref, ils continuent à attirer de nouveaux clients sous azure avec de nouvelles possibilités tout en concurrençant encore plus AWS.

Il n’y a que peu d’intérêt pour ceux qui ont déjà leur propre système.


Idem.



Pour avoir un peu essayé, je trouve la syntaxe de PS imbuvable… des commandes à rallonge avec des accolades, des crochets, des majuscules dans les noms…



J’ai essayé une fois d’installer un windows server core… j’ai très vite déchanté et je me suis empressé d’installer les RSAT <img data-src=" />


Azure a détourné le nom de la démarche DevOps pour en faire une simple liste d’outils de CICD ? <img data-src=" />








SebGF a écrit :



Azure a détourné le nom de la démarche DevOps pour en faire une simple liste d’outils de CICD ? <img data-src=" />



Je pense que le commentaire auquel tu fais référence fait un abus de langage.



Le nom véritable du produit c’est Azure DevOps. C’est pas plus choquant que Google Spreadsheets par exemple, si tu le dis en entier.



C’est même leur stratégie de nomage de produits depuis quasiment leurs débuts : « Microsoft [Gamme] [Nom commun] » (Office Word, Windows Mail, VS Code, MSN Messenger …).



Et c’est une stratégie assez pertinente quand tu édites des centaines de produits, tu t’assures que ton produit ne sera pas invisible bêtement à cause de son nom, puisqu’il est bateau.









wpayen a écrit :



Il faut comparer l’équivalent.

L’équivalent à Powershell Core sous Unix, c’est Python, pas Bash.



Le gros avantage reste le concept objet/Méthode qui permet une réutilisation.





Pas vraiment, python est un langage de programmation généraliste, là ou powershell va être orienté administration système.



Après, powershell est effectivement plus un langage de script comme python qu’une interface en ligne de commande comme bash. Par exemples, les cmdlet de powershell sont plus à voir comme un bibliothèque de fonction interne à powershell que comme de simple programme avec en ligne de commande (comme pour Shell/Bash).









SebGF a écrit :



Azure a détourné le nom de la démarche DevOps pour en faire une simple liste d’outils de CICD ? <img data-src=" />





ça fait un peu (beaucoup) plus que de la CICD, quand même, c’est une suite d’ALM complète.



ça va du suivi des exigences au testing, en passant effectivement par la CICD et la gestion des bugs et des tâches, avec gestion des sources via un git intégré. Le tout avec pas mal de modules pour s’intégrer à des solution hors MS (Jenkins, GitLab, …) et des agents de build non-Windows aussi.



j’étais un peu sceptique au début, mais il faut reconnaitre que c’est un outil plutôt bien foutu, surtout par rapport à ce que j’ai pu tester d’autres dans le domaine (JIRA et HP QC <img data-src=" />)



Désolé, j’aurais pu être plus précis.








dirtyvader a écrit :



(Vraie question sérieuse) Est-ce que quelqu’un, qui utilise PowerShell sous Linux, peut me donner une raison ou un avantage à l’utiliser plutot que Bash(ZSH, Fish, ) ?







Je viens de l’installer pour manipuler des droits / répertoires sur un serveur distant Active Directory. Le serveur Linux héberge un annuaire LDAP et il faut synchroniser les comptes + droits spécifiques (groupes, répertoires partagés) dans le monde AD pour les sessions Windows du parc, historiquement sous AD et qui le restera. J’ai l’impression qu’on l’installe quand on veut communiquer avec le monde spécifiquement Windows.



Fermer