PowerShell 7.1 Preview is now available

PowerShell 7 New Icon

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

  • Use invariant culture string conversion for -replace operator (#10954) (Thanks @iSazonov!)

Engine Updates and Fixes

  • Revert the PRs that made DBNull.Value and NullString.Value treated as $null (#11648)

Experimental Features

  • Use invariant culture string conversion for -replace operator (#10954) (Thanks @iSazonov!)

General Cmdlet Updates and Fixes

  • Fix an operator preference order issue in binder code (#12075) (Thanks @DamirAinullin!)
  • Fix NullReferenceException when binding common parameters of type ActionPreference (#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 in Get-FileHash (#11944) (Thanks @iSazonov!)
  • Change 'PowerShell Core' to 'PowerShell' in a resource string (#11928) (Thanks @alexandair!)
  • Bring back MainWindowTitle in PSHostProcessInfo (#11885) (Thanks @iSazonov!)
  • Miscellaneous minor updates to Windows Compatibility (#11980)
  • Fix ConciseView to split PositionMessage using [Environment]::NewLine (#12010)
  • Remove network hop restriction for interactive sessions (#11920)
  • Fix NullReferenceException in SuspendStoppingPipeline() and RestoreStoppingPipeline() (#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 where mpr.dll and STA is not available (#11748)
  • Refactor and implement Restart-Computer for Un*x and macOS (#11319)
  • Add an implementation of Stop-Computer for Linux and macOS (#11151)
  • Fix help function to check if less is available before using (#11737)
  • Update PSPath in certificate_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 in Select-Object only once (#11548) (Thanks @iSazonov!)
  • Add -AsUTC to the Get-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 from ArgumentCompleter when AST 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:

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.