Friday, March 1, 2024
HomePowershellPowerShell 7.4 Common Availability - PowerShell Staff

PowerShell 7.4 Common Availability – PowerShell Staff

As we come to in the direction of the top of 2023, we’re excited to announce the overall availability of PowerShell 7.4!
This launch is constructed on .NET 8 and equally,
is our newest Lengthy Time period Assist (LTS) launch supported for 3 years.

We wish to thank our group and lots of contributors for his or her invaluable assist figuring out points,
partaking in discussions in our repository, offering fixes and new options,
and serving to us ship a top quality launch!

How do I get it?

Since PowerShell 7 is supported on Home windows, Linux, and macOS, there are a
number of methods to get it.
Should you put in the earlier PowerShell 7 secure launch (7.3) by way of the Home windows Retailer or MSI (and opted into
Microsoft Replace),
you can be routinely up to date to 7.4 GA.

What’s new?

This launch continues to concentrate on enhancing the shell expertise and addressing
generally reported buyer and accomplice points.

An in depth report of What’s New
is offered in our documentation or by way of the WhatsNew

Listed here are just a few highlights:

PSResourceGet 1.0

This launch contains PSResourceGet, which itself
was made typically obtainable earlier this yr.
PSResourceGet replaces PowerShellGet (though the 2 work side-by-side for legacy scripts) and the place we are going to make investments future
enhancements to the PowerShell module ecosystem.
This launch focuses on a brand new codebase that’s extra maintainable and likewise offers higher efficiency.
As well as, this module makes use of a unique set of cmdlets to permit for breaking adjustments that present a extra intuitive person expertise.

PSReadLine 2.3

This launch contains the most recent PSReadLine launch
that comprises various enhancements and bug fixes.

New secure options

The PowerShell Committee reviewed the experimental options we’ve had within the preview releases together with
group suggestions (points) and telemetry indicating the characteristic was used and never disabled and determined that
the next options had been able to be deemed secure for this launch:

  • PSConstrainedAuditLogging
    This characteristic allows PowerShell 7 to stick to WDAC Audit mode and log occasions into the Home windows Occasion Log.
    On this mode, PowerShell runs scripts in Full Language Mode, however logs occasions if there can be
    a distinction in habits in System Lockdown mode.
    This makes it simpler for directors to deploy PowerShell 7 in environments which have System Lockdown mode enabled
    by understanding what scripts would must be modified to run in that mode.
  • PSCustomTableHeaderLabelDecoration
    A typical suggestions from customers is that with objects rendered as tables, it was not clear when a header
    label was not a property of the item.
    For instance, when utilizing Get-Course of, you’ll see a column with the header CPU(s) to point the
    quantity of cpu seconds utilized by that course of.
    Nevertheless, if you happen to tried to entry that property, you’d discover it’s really known as simply CPU and the (s)
    was added to the header to point that it was in seconds.
    This new characteristic means that you can enhance the header label to make it clear that it’s not a property of the item.
    The default ornament merely renders the header label in italics.
  • PSWindowsNativeCommandArgPassing
    That is continuation of a characteristic we first added in 7.3.
    A significant distinction between Home windows and non-Home windows is how arguments are parsed significantly when quotes are concerned.
    As extra Open Supply command-line instruments are getting used on Home windows, we wish to make it possible for PowerShell
    can go arguments to these instruments in a method that works as anticipated.
    Nevertheless, many legacy command-line instruments on Home windows don’t deal with arguments within the business normal method.
    As such, a Home windows mode for $PSNativeCommandArgumentPassing particular instances some identified instruments to fallback to how
    it labored with Home windows PowerShell whereas fashionable instruments the brand new Normal mode.
    A Legacy mode is offered for those who must help legacy instruments that don’t work with the Home windows mode.
  • PSNativeCommandErrorActionPreference
    That is one other continuation of a characteristic we first added in 7.3.
    This characteristic means that you can deal with a non-zero exit code from a local command as an ErrorRecord that will come from a cmdlet.
    This lets you set $ErrorActionPreference to Cease and have PowerShell cease execution whether or not a cmdlet had an error
    or a local command had a non-zero exit code.
    This simplifies scripts that beforehand must test $LASTEXITCODE after execution of a local command or wrap it in a helper perform.
  • PSNativeCommandPreserveBytePipe
    This characteristic means that you can protect the byte stream when piping to or from a local command.
    Beforehand, all streams had been transformed to strings when piping to or from a local command and thus misplaced the unique byte stream.
    That is helpful for instruments that anticipate binary enter similar to tar or zip.

There are nonetheless various experimental featues on this launch pending extra person suggestions earlier than we are able to promote them to secure.
For instance, we proceed to iterate on the Suggestions Supplier
mannequin as we get extra suggestions from customers and companions who implement it.

Breaking adjustments

There are just a few Breaking Modifications
on this launch that you need to be conscious of though we anticipate them to be uncommon.

One that might have an effect on some customers is the brand new -ProgressAction widespread parameter.
Just like different widespread parameters, the brand new -ProgressAction parameter is routinely obtainable to cmdlets and superior capabilities.
This parameter means that you can management how progress is reported for a cmdlet or superior perform name.
Beforehand, you would need to set $ProgressPreference to SilentlyContinue to suppress progress after which restore it to its earlier worth.

What’s Subsequent?

We are going to proceed to concentrate on making PowerShell a terrific shell atmosphere subsequent yr with PowerShell 7.5.
As standard, we’ll proceed to deal with points and bugs reported by our group and companions in addition to undertake the most recent .NET 9 preview releases.
Particular staff investments shall be mentioned in a separate weblog submit early subsequent yr.

Thanks once more to our group and companions for his or her continued help and suggestions!



Please enter your comment!
Please enter your name here

Most Popular

Recent Comments