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.
Advertisеment
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-Errorcmdlet - Pipeline chain operators (
&&and||) - Ternary operator (
a ? b : c) - Null assignment and coalescing operators (
??and??=) - Cross-platform
Invoke-DscResource(experimental) -
Out-GridView,-ShowWindowand other legacy GUI cmdlets are back on Windows
What's new in PowerShell 7 RC 3
Breaking Changes
- Fix
Invoke-Commandmissing error on session termination (#11586)
Engine Updates and Fixes
- Update the map between console color to
VTsequences (#11891) - Fix SSH remoting error on Windows platform (#11907)
- Restore the
PowerShellStreamTypeenumwith anObsoleteAttribute(#11836) - Handle cases where
CustomEventwas not initially sent (#11807) - Fix how COM objects are enumerated (#11795)
- Fix
NativeDllHandlerto not throw when file is not found (#11787) - Restore
SetBreakpointsAPI (#11622) - Do not needlessly pass
-l login_nameor-p porttossh(#11518) (Thanks @LucaFilipozzi!) - Fix for
JEAuser 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
WinCompatremote session (#11809) - Add
WinCompatdeny list support using a setting inpowershell.config.json(#11726) - Fix unnecessary trimming of line resulting in incorrect index with
ConciseView(#11670)
Code Cleanup
- Change name of
ClrVersionparameter 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-PlatformInfohelper and tests for Debian 10, 11 and CentOS 8 (#11842) - Ensure correct
pwshis used for test runs (#11486) (Thanks @iSazonov!)
Build and Packaging Improvements
- Add
LTSReleasevalue frommetadata.jsontorelease.json(#11897) - Bump
Microsoft.ApplicationInsightsfrom2.12.1to2.13.0(#11894) - Make LTS package always not a preview (#11895)
- Bump
System.Data.SqlClientfrom4.8.0to4.8.1(#11879) - Change
LTSReleasevalue inmetadata.jsonto true forRC.3release (Internal 10960) - Update
LTSlogic to depend onmetadata.json(#11877) - Set default value of
LTSReleaseto false (#11874) - Refactor packaging pipeline (#11852)
- Make sure
LTSpackages have symbolic links forpwshandpwsh-lts(#11843) - Bump
Microsoft.PowerShell.Nativefrom7.0.0-rc.2to7.0.0(#11839) - Update the NuGet package generation to include
cimcmdlet.dlland most of the built-in modules (#11832) - Bump
Microsoft.PowerShell.Archivefrom1.2.4.0to1.2.5(#11833) - Bump
PSReadLinefrom2.0.0-rc2to2.0.0(#11831) - Add trace source and serialization primitives to the allowed assembly list (Internal 10911)
- Update the
NextReleaseTagto be v7.0.0-preview.7 (#11372) - Change packaging to produce
LTSpackages (#11772) - Build tar packages only when building on Ubuntu (#11766)
- Bump
NJsonSchemafrom10.1.4to10.1.5(#11730) - Fix symbolic link creation in
packaging.psm1(#11723) - Bump
Microsoft.ApplicationInsightsfrom2.12.0to2.12.1(#11708) - Bump
NJsonSchemafrom10.1.3to10.1.4(#11620) - Move to latest Azure DevOps agent images (#11704)
- Bump
Markdig.Signedfrom0.18.0to0.18.1(#11641)
Documentation and Help Content
- Add links to diffs on Github in changelog (#11652) (Thanks @xtqqczze!)
- Fix markdown-link test failure (#11653) (Thanks @xtqqczze!)
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:
