PowerShell 7 RC 3 Is Available With The Following Changes

Microsoft is releasing a new version of the next gen PowerShell scripting language. Interesting users can get the PowerShell 7 Release Candidate 3. It contains a number of new features and many bug fixes from both the community as well as the PowerShell team.

PowerShell is an advanced form of command prompt. It is extended with a huge set of ready-to-use cmdlets and comes with the ability to use .NET framework/C# in various scenarios. Windows includes a GUI tool, PowerShell ISE, which allows editing and debugging scripts in a useful way.

PowerShell 7 is the first command-line shell and scripting language package based on .NET Core 3.0. It can attain compatibility with 90+% of the inbox Windows PowerShell modules by leveraging changes in .NET Core 3.0 that bring back many APIs required by modules built on .NET Framework so that they work with .NET Core runtime.

Microsoft expects General Availability of PowerShell 7 in January as their first Long Term Servicing release.

Between the Release Candidate and General Availability, Microsoft will only accept critical bug fixes and no new features will be included. For that release, some Experimental Features will be considered design stable and no longer be Experimental. This means that any future design changes for those features will be considered a breaking change.

Key features of PowerShell 7

  • .NET Core 3.1 (LTS)
  • ForEach-Object -Parallel
  • Windows compatibility wrapper
  • New version notification
  • New error view and Get-Error cmdlet
  • Pipeline chain operators (&& and ||)
  • Ternary operator (a ? b : c)
  • Null assignment and coalescing operators (?? and ??=)
  • Cross-platform Invoke-DscResource (experimental)
  • Out-GridView-ShowWindow and other legacy GUI cmdlets are back on Windows

What's new in PowerShell 7 RC 3

Breaking Changes

  • Fix Invoke-Command missing error on session termination (#11586)

Engine Updates and Fixes

  • Update the map between console color to VT sequences (#11891)
  • Fix SSH remoting error on Windows platform (#11907)
  • Restore the PowerShellStreamType enum with an ObsoleteAttribute (#11836)
  • Handle cases where CustomEvent was not initially sent (#11807)
  • Fix how COM objects are enumerated (#11795)
  • Fix NativeDllHandler to not throw when file is not found (#11787)
  • Restore SetBreakpoints API (#11622)
  • Do not needlessly pass -l login_name or -p port to ssh (#11518) (Thanks @LucaFilipozzi!)
  • Fix for JEA user role in virtual account (#11668)
  • Do not resolve types from assemblies that are loaded in separate AssemblyLoadContext (#11088)

General Cmdlet Updates and Fixes

  • Sync current directory in WinCompat remote session (#11809)
  • Add WinCompat deny list support using a setting in powershell.config.json (#11726)
  • Fix unnecessary trimming of line resulting in incorrect index with ConciseView (#11670)

Code Cleanup

  • Change name of ClrVersion parameter back to revert change in capitalization (#11623)

Tools

Tests

  • Make sure to test whether we skip a test using consistent logic (#11892)
  • Skip directory creation at root test on macOS (#11878)
  • Update Get-PlatformInfo helper and tests for Debian 10, 11 and CentOS 8 (#11842)
  • Ensure correct pwsh is used for test runs (#11486) (Thanks @iSazonov!)

Build and Packaging Improvements

  • Add LTSRelease value from metadata.json to release.json (#11897)
  • Bump Microsoft.ApplicationInsights from 2.12.1 to 2.13.0 (#11894)
  • Make LTS package always not a preview (#11895)
  • Bump System.Data.SqlClient from 4.8.0 to 4.8.1 (#11879)
  • Change LTSRelease value in metadata.json to true for RC.3 release (Internal 10960)
  • Update LTS logic to depend on metadata.json (#11877)
  • Set default value of LTSRelease to false (#11874)
  • Refactor packaging pipeline (#11852)
  • Make sure LTS packages have symbolic links for pwsh and pwsh-lts (#11843)
  • Bump Microsoft.PowerShell.Native from 7.0.0-rc.2 to 7.0.0 (#11839)
  • Update the NuGet package generation to include cimcmdlet.dll and most of the built-in modules (#11832)
  • Bump Microsoft.PowerShell.Archive from 1.2.4.0 to 1.2.5 (#11833)
  • Bump PSReadLine from 2.0.0-rc2 to 2.0.0 (#11831)
  • Add trace source and serialization primitives to the allowed assembly list (Internal 10911)
  • Update the NextReleaseTag to be v7.0.0-preview.7 (#11372)
  • Change packaging to produce LTS packages (#11772)
  • Build tar packages only when building on Ubuntu (#11766)
  • Bump NJsonSchema from 10.1.4 to 10.1.5 (#11730)
  • Fix symbolic link creation in packaging.psm1 (#11723)
  • Bump Microsoft.ApplicationInsights from 2.12.0 to 2.12.1 (#11708)
  • Bump NJsonSchema from 10.1.3 to 10.1.4 (#11620)
  • Move to latest Azure DevOps agent images (#11704)
  • Bump Markdig.Signed from 0.18.0 to 0.18.1 (#11641)

Documentation and Help Content

PowerShell 7 is a “go live” release, which means that it is officially supported in production until the release of PowerShell 7 General Availability (GA) next month.

Source: Microsoft

Support us

Winaero greatly relies on your support. You can help the site keep bringing you interesting and useful content and software by using these options:

If you like this article, please share it using the buttons below. It won't take a lot from you, but it will help us grow. Thanks for your support!

Author: Sergey Tkachenko

Sergey Tkachenko is a software developer who started Winaero back in 2011. On this blog, Sergey is writing about everything connected to Microsoft, Windows and popular software. Follow him on Telegram, Twitter, and YouTube.

Leave a Reply

Your email address will not be published.

Exit mobile version
Using Telegram? Subscribe to the blog channel!
Hello. Add your message here.