Microsoft Releases PowerShell 7 Preview 3
Microsoft announced on Wednesday that the PowerShell 7 Preview 3 scripting solution is now available.
Preview 3 is notable for turning on all of PowerShell 7's experimental features by default. It's being done because Microsoft's PowerShell Committee wants more user feedback to determine which features to support or withdraw. However, this default setting won't be part of the finalized product when it gets released.
PowerShell 7 Preview 3 also will help Microsoft's PowerShell Committee sort out features because Microsoft has initiated a new "telemetry" data gathering approach with this release, as explained in this Microsoft announcement. PowerShell users can opt out of the telemetry collection using a specific PowerShell cmdlet that's listed in the announcement.
Exactly which "data points" will get collected under the new telemetry approach wasn't described. The details of the switch were "reviewed with the PowerShell community and approved by the PowerShell Committee through the PowerShell RFC process," Microsoft indicated.
The telemetry will get collected via "Application Insights." Likely, Microsoft is referring to Azure Applications Insights, an application-level monitoring tool for developers that works with Visual Studio and stores application telemetry data at Microsoft's datacenters. Microsoft plans to share some of this telemetry data with the PowerShell community via its publicly available Power BI report page, although that page currently just shows details about the operating systems and PowerShell versions used.
New in Preview 3
Some other new features in Preview 3 of PowerShell 7 include:
- Ability to run scriptblocks in parallel using the ForEach-Object –Parallel cmdlet.
- A single apartment thread for Windows users by default.
- Argument names displayed with COM API calls.
- Null strings for database types become comparable as $null or [dnull].
- Read-Host prompt no longer encumbered by certain characters in scripts.
- A negative –Split operator capability for making right-to-left substrings.
- Showing the bytes of the target executable application file with the Get-ChildItem cmdlet.
Microsoft expects PowerShell 7 to reach the "general availability" (GA) product release stage by "end of this calendar year." When released, the cross-platform PowerShell 7 is expected to be the replacement for Windows PowerShell 5.1 and PowerShell Core 6.x products.
PowerShell 7 preview 3 is currently built on .NET Core 3.0 Preview 8. Microsoft had previously suggested that PowerShell 7 would reach GA status one month after .NET Core 3.0 reached GA, which could mean that PowerShell 7 will get commercially released sometime in October of this year. Microsoft eventually plans to unify its various .NET solutions under the .NET 5 name, as explained back in May.
PowerShell 7 will be a so-called "long-term servicing" release under Microsoft's Modern Lifecycle Support policy. Possibly that means it'll have a six-month update cycle. PowerShell 7's ultimate end-of-life cycle will be tied to the product lifecycle of .NET Core 3.1, Microsoft's announcement indicated.
Kurt Mackie is senior news producer for the 1105 Enterprise Computing Group.