Introducing PowerShell 7.0

Today we are pleased to announce the release of the public (GA)  version of PowerShell 7.0 ! First of all, we would like to thank our  many contributors for making this release possible by sharing code, tests, documentation, and feedback about problems. PowerShell 7 would not have been possible without your help.



What is PowerShell 7?


For beginners, PowerShell 7 is the latest major update to PowerShell, a cross-platform (Windows, Linux, and macOS) automation tool and configuration infrastructure optimized for working with structured data (e.g. JSON, CSV, XML, etc.), a REST API and object models. PowerShell includes a command-line shell, an object-oriented scripting language, and a set of tools for running scripts / cmdlets and managing modules.

Three years ago, we announced PowerShell Core 6 as a brand new version of PowerShell. Based on .NET Core, PowerShell Core introduced cross-platform support for Windows, macOS and Linux, SSH-based PowerShell Remoting, significantly improved REST and JSON support, official Docker containers, and much more. In addition, this was the first release of PowerShell, created under an open source license (MIT), encouraging long-time PowerShell enthusiasts and beginners alike to contribute directly to source code, tests, and documentation.

After three successful releases of PowerShell Core, we are excited to see PowerShell 7, the next chapter in the continuous development of PowerShell. In PowerShell 7, in addition to the usual many new cmdlets / APIs and bug fixes, we introduce a number of new features, including:

  • Pipeline parallelization with ForEach-Object-Parallel
  • New operators:
    • Ternary Operator: a? b: c
    • Pipeline chain operators: || and &&
    • Null coalescing statements: ?? and ?? =
  • Simplified and dynamic error viewing and the Get-Error cmdlet to more easily investigate errors
  • A compatibility level that allows users to import modules in an implicit Windows PowerShell session
  • Automatic update notifications
  • Ability to call DSC resources directly from PowerShell 7 (experimental)

For a more complete list of features and fixes, see  here .

Upgrading from PowerShell Core 6.x to 7.0 also means upgrading from .NET Core 2.x to 3.1. .NET Core 3.1 brings back the many .NET Framework APIs (especially on Windows), providing significantly greater backward compatibility with existing Windows PowerShell modules. This includes many modules on Windows that require GUI functionality such as Out-GridView and Show-Command, as well as many role management modules that ship as part of Windows. For more information, check out our module compatibility chart , which demonstrates how you can use the latest, modern modules that work with PowerShell 7.

If you have not been able to use PowerShell Core 6.x in the past due to module compatibility issues, this could be a situation where you will take advantage of some of the features that we have already provided since launching the Core project!

Cool! How to get PowerShell 7?


To get started, check out the installation documentation for  WindowsmacOS , or  Linux . There may be several installation methods depending on your OS version and preferred package format.

If you already know what to do and are just looking for a binary package (be it MSI, ZIP, RPM or something else), go to our latest version tag on GitHub .

Alternatively, you can use one of our many Docker images . For more information on using them, check out our PowerShell-Docker repository .

What operating systems does PowerShell 7 support?


PowerShell 7 supports the  following  x64 operating systems , including:

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

In addition, we support ARM32 and ARM64 versions of Debian and Ubuntu, as well as ARM64 Alpine Linux.

Although not officially supported, the community has also provided packages for Arch and Kali Linux .

If you need support for a platform that is not on this list, send a distribution request to GitHub (although it should be noted that in the end we are limited to what .NET Core 3.1 supports ).

Wait, what happened to PowerShell "Core"?


Like .NET with .NET 5 , we believe that PowerShell 7 marks the end of our path to maximum backward compatibility with Windows PowerShell. In this regard, we believe that PowerShell 7 and later is the only supported PowerShell in the future.

PowerShell 7 will continue to be featured in the Core edition to distinguish 6.x / 7.x from Windows PowerShell, but overall you will see that in the future it will be referred to as “PowerShell 7”.

Which Microsoft products already support PowerShell 7?


Any module that is already supported by PowerShell Core 6.x is also supported in PowerShell 7, including:


On Windows, we also added the -UseWindowsPowerShell parameter to the Import-Module to simplify the transition to PowerShell 7 for those using incompatible modules. This option creates a proxy module in PowerShell 7 that uses the local Windows PowerShell process to implicitly run any cmdlets contained in this module. For more information about this feature, check out the Import-Module documentation .

For those modules that are still incompatible, we are working with a number of colleagues to add built-in support for PowerShell 7, including Microsoft Graph, Office 365, and others.

Azure Cloud Shell has already been updated to use PowerShell 7, while others, such as the .NET Core SDK Docker container images andAzure features will be updated soon.

What's next?


We are already working hard on PowerShell 7.1, and you can expect its first preview in the near future, full of new features and fixes that are not included in 7.0. Stay tuned for a more detailed roadmap blog that outlines our current research and desires for 7.1.

As noted above, we are also moving to an annual release frequency to better match the .NET versions and their support life cycle (pre-release releases continue to be released approximately every month).

All Articles