The PowerShell team has introduced a new version of PowerShell. Shorty after the release of PowerShell 7.0, a Preview version of the upcoming PowerShell 7.1 platform is out to the public. Here is what to expect, and what has already changed.
The preview release of PowerShell 7.1 is notable for including .NET 5 preview 1.
Starting with PowerShell 7.0, devs have shifted to align with .NET’s release and support life-cycle more closely. PowerShell 7.1 is expected to become available within a week or two of .NET 5’s release date of winter 2020 and align with their annual release cadence going forward.
What's new in PowerShell 7.1 Preview
Breaking Changes
Engine Updates and Fixes
- Revert the PRs that made
DBNull.Value
andNullString.Value
treated as$null
(#11648)
Experimental Features
General Cmdlet Updates and Fixes
- Fix an operator preference order issue in binder code (#12075) (Thanks @DamirAinullin!)
- Fix
NullReferenceException
when binding common parameters of typeActionPreference
(#12124) - Fix default formatting for deserialized
MatchInfo
(#11728) (Thanks @iSazonov!) - Use asynchronous streams in
Invoke-RestMethod
(#11095) (Thanks @iSazonov!) - Address UTF-8 Detection In
Get-Content -Tail
(#11899) (Thanks @NoMoreFood!) - Handle the
IOException
inGet-FileHash
(#11944) (Thanks @iSazonov!) - Change 'PowerShell Core' to 'PowerShell' in a resource string (#11928) (Thanks @alexandair!)
- Bring back
MainWindowTitle
inPSHostProcessInfo
(#11885) (Thanks @iSazonov!) - Miscellaneous minor updates to Windows Compatibility (#11980)
- Fix
ConciseView
to splitPositionMessage
using[Environment]::NewLine
(#12010) - Remove network hop restriction for interactive sessions (#11920)
- Fix
NullReferenceException
inSuspendStoppingPipeline()
andRestoreStoppingPipeline()
(#11870) (Thanks @iSazonov!) - Generate GUID for
FormatViewDefinition
InstanceId
if not provided (#11896) - Fix
ConciseView
where error message is wider than window width and doesn't have whitespace (#11880) - Allow cross-platform
CAPI-compatible
remote key exchange (#11185) (Thanks @silijon!) - Fix error message (#11862) (Thanks @NextTurn!)
- Fix
ConciseView
to handle case where there isn't a console to obtain the width (#11784) - Update
CmsCommands
to use Store vs certificate provider (#11643) (Thanks @mikeTWC1984!) - Enable
pwsh
to work on Windows systems wherempr.dll
and STA is not available (#11748) - Refactor and implement
Restart-Computer
forUn*x
and macOS (#11319) - Add an implementation of
Stop-Computer
for Linux and macOS (#11151) - Fix
help
function to check ifless
is available before using (#11737) - Update
PSPath
incertificate_format_ps1.xml
(#11603) (Thanks @xtqqczze!) - Change regular expression to match relation-types without quotes in Link header (#11711) (Thanks @Marusyk!)
- Fix error message during symbolic link deletion (#11331)
- Add custom 'Selected.*' type to
PSCustomObject
inSelect-Object
only once (#11548) (Thanks @iSazonov!) - Add
-AsUTC
to theGet-Date
cmdlet (#11611) - Fix grouping behavior with Boolean values in
Format-Hex
(#11587) (Thanks @vexx32!) - Make
Test-Connection
always use the default synchronization context for sending ping requests (#11517) - Correct startup error messages (#11473) (Thanks @iSazonov!)
- Ignore headers with null values in web cmdlets (#11424) (Thanks @iSazonov!)
- Re-add check for
Invoke-Command
job dispose. (#11388) - Revert "Update formatter to not write newlines if content is empty (#11193)" (#11342) (Thanks @iSazonov!)
- Allow
CompleteInput
to return results fromArgumentCompleter
whenAST
or Script has matching function definition (#10574) (Thanks @M1kep!) - Update formatter to not write new lines if content is empty (#11193)
Besides these changes, there are general code, test, and documentation improvements.
What to expect in PowerShell 7.1
- PowerShellGet 3.0
- Secret Management Module, an extensible abstraction layer in PowerShell for interacting with Secrets and Secrets Vaults, will get Linux support.
- PSScriptAnalyzer 2.0 for better user experience with VSCode-PowerShell and PSEditorServices.
- Improvements made to PowerShell Jupyter Kernel
- Improvements made to platyPS vNext, a PowerShell module that devs currently use to convert PowerShell documentation from markdown to updatable-help.
The official announcement also mentions a number of areas where it is possible to make more improvements and changes, including Installation and Updating, Shell Improvements, Interactive User Experience.
Finally, PowerShell may get a minimal setup, that only includes the parts of PowerShell needed for your scripts. Not only would it take less disk space, but more importantly, a minimal set of code means less patching and security attack surface.
You can download it here:
Download PowerShell 7.1 Preview 1
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: