D’après l’inventeur de PowerShell, Jeffrey Snover, le lancement de PowerShell Core 6.0 est le plus grand et le plus important changement jamais apporté à PowerShell :

PowerShell est une plateforme de configuration et d’automatisation, conçue pour fonctionner avec les outils existants, optimisée pour les données structurées (JSON, XML, …), les API REST, les modèles objets. PowerShell inclut une interface en ligne de commande, un langage de scripts et une plateforme de traitement de cmdlets.

PowerShell est largement exploitée dans Windows comme dans Microsoft Azure.

Windows PowerShell est le PowerShell original, propriétaire, réservé aux systèmes d’exploitation Windows, compatible avec .NET et dépendant du .NET Framework. Cette version est toujours d’actualité, et devrait continuer à être exploitée longtemps. Son évolution sera minimale, ce qui est un avantage : stabilité, tout un inconvénient.

PowerShell Core est la réécriture complète de Windows PowerShell sans dépendance à .NET. PowerShell Core est multi-OS (Windows, Linux, macOS), en code source ouvert, et s’appuie sur .NET Core, parfois appelé Core CLR, la déclinaison multi-OS et en code source ouvert de .NET.

Désormais, c’est sur PowerShell Core que porteront la plupart des efforts de Microsoft, Windows PowerShell recevant surtout des correctifs critiques de sécurité.

PowerShell Core ne peut pas entièrement remplacer Windows PowerShell, car toutes les fonctionnalités de Windows PowerShell n’ont pas, et pour certaines ne seront pas (PowerShell Workflows, PowerShell Snap-ins, WMI v1 cmdlets) portées sur PowerShell Core ; parce qu’il existe bien moins de modules ; et parce que toute fonctionnalité basée sur .NET dépend des fonctions exposées par .NET Standard pour Windows PowerShell, et .NET Core pour PowerShell Core.

À terme, les fonctionnalités de PowerShell Core devraient dépasser celles de Windows PowerShell, grâce au travail de portage de Microsoft comme aux contributions tierces.

Fort heureusement, les deux installations sont cloisonnées, et l’on peut utiliser l’une comme l’autre en même temps.

Les plateformes officiellement supportées par PowerShell Core sont :

  • 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, 26
  • macOS 10.12+

Non officiellement supportées, il existe des versions expérimentales de Microsoft pour Windows sur ARM32/ARM64 et sur Raspian (Strech).

Non officiellement supportées, mais développées par la communauté : Arch Linux, Kali Linux et AppImage.