PowerShell 7 released, now Generally Available

Dave W. Shanahan

PowerShell 7 is the latest major update to PowerShell, a cross-platform automation and configuration tool for Windows, Linux, and macOS. In a post on the Microsoft PowerShell blog, Microsoft Project Manager Joey Aiello announced PowerShell 7, which is now generally available.

Besides the normal bug fixes and performance updates, PowerShell 7 includes the following new feature updates. The full changelog is available here.

  • Pipeline parallelization with ForEach-Object -Parallel
  • New operators:
    • Ternary operator: a ? b : c
    • Pipeline chain operators: || and &&
    • Null coalescing operators: ?? and ??=
  • A simplified and dynamic error view and Get-Error cmdlet for easier investigation of errors
  • A compatibility layer that enables users to import modules in an implicit Windows PowerShell session
  • Automatic new version notifications
  • The ability to invoke to invoke DSC resources directly from PowerShell 7 (experimental)

Additionally, PowerShell 7 now runs .NET Core 3.1, instead of .NET Core 2.x that powered PowerShell 6.x. .NET Core 3.1 comes with a number of .NET Framework APIs, allowing for better backward compatibility with other existing Windows PowerShell modules. PowerShell 7 attempts to fix module compatibility issues users had with any previous version of PowerShell or any future version of PowerShell moving forward.

However, if you do experience any issues with PowerShell 7, be sure to file an issue on PowerShell’s repository on GitHub. If you run into any issues using any modules in PowerShell 7, be sure to notify the Powershell team so they can work on a fix. Beginners can check out Microsoft’s PowerShell 7 installation instructions for Windows. More experienced users can get Powershell 7 directly via GitHub.

What feature are you are looking forward to the most in PowerShell 7? Let us know in the comments.