Microsoft is releasing a new version of the next gen PowerShell scripting language. Interesting users can get the PowerShell 7 Release Candidate. 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
New Features in PowerShell 7 RC
Breaking Changes
- Make update notification support
LTS
and default channels (#11132)
Engine Updates and Fixes
- Improvements in breakpoint APIs for remote scenarios (#11312)
- Fix PowerShell class definition leaking into another Runspace (#11273)
- Fix a regression in formatting caused by the
FirstOrDefault
primitive added in7.0.0-Preview1
(#11258) - Additional Microsoft Modules to track in
PS7
Telemetry (#10751) - Make approved features non-experimental (#11303)
- Update
ConciseView
to useTargetObject
if applicable (#11075) - Fix
NullReferenceException
inCompletionCompleters
public methods (#11274) - Fix apartment thread state check on non-Windows platforms (#11301)
- Update setting
PSModulePath
to concatenate the process and machine environment variables (#11276) - Bump
.NET Core
to3.1.0
(#11260) - Fix detection of
$PSHOME
in front of$env:PATH
(#11141)
General Cmdlet Updates and Fixes
- Fix for issue on Raspbian for setting date of file changes in
UnixStat
Experimental Feature (#11313) - Add
-AsPlainText
toConvertFrom-SecureString
(#11142) - Added
WindowsPS
version check forWinCompat
(#11148) - Fix error-reporting in some
WinCompat
scenarios (#11259) - Add native binary resolver (#11032) (Thanks @iSazonov!)
- Update calculation of char width to respect
CJK
chars correctly (#11262) - Add
Unblock-File
for macOS (#11137) - Fix regression in
Get-PSCallStack
(#11210) (Thanks @iSazonov!) - Avoid automatically loading the
ScheduledJob
module when using Job cmdlets (#11194) - Add
OutputType
toGet-Error
cmdlet and preserve originalTypeNames
(#10856) - Fix null reference in
SupportsVirtualTerminal
property (#11105)
Code Cleanup
- Change comment and element text to meet Microsoft standards (#11304)
Tests
- Make unreliable
DSC
test pending (#11131)
Build and Packaging Improvements
- Fix Nuget package signing for Coordinated Package build (#11316)
- Update dependencies from PowerShell Gallery and NuGet (#11323)
- Bump
Microsoft.ApplicationInsights
from2.11.0
to2.12.0
(#11305) - Bump
Microsoft.CodeAnalysis.CSharp
from3.3.1
to3.4.0
(#11265) - Updates packages for Debian 10 and 11 (#11236)
- Only enable experimental features prior to
RC
(#11162) - Update macOS minimum version (#11163)
- Bump
NJsonSchema
from10.0.27
to10.0.28
(#11170)
Documentation and Help Content
- Refactor change logs into one log per release (#11165)
- Fix
FWLinks
for PowerShell 7 online help documents (#11071)
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: