Microsoft issued a new preview of the beloved PowerShell 7 command line last night, highlighting some additional sips, and how to turn it off.
PowerShell 7 Preview 3, which is based on .NET Core 3.0 Preview 8, is the last step on the road to final release in late 2019 and a possible replacement for the venerable PowerShell 5.1.
The first preview was withdrawn in May and the gang has progressed steadily since then. This time, the team has chosen to activate all the experimental features of the command line shell by default to get more comments on whether those features deserve the extra effort to obtain a "stable" state.
Those who prefer their command line tools to have at least the Release Candidate or Stable status should not fear: the forced enjoyment of experimental features will not be in those versions.
The head of PowerShell, honcho Steve Lee, also noted that once in General Availability, it will be the first Long-Term Service (LTS) version of the tool and will be compatible as long as the underlying .NET Core 3.1 is.
.NET Core 3.1, which will be provisionally launched in November of this year, is intended to be the LTS Version of the framework and, therefore, should see three years of support.
Longevity aside, there are a number of useful features, some aimed directly at Windows (eliminating the reasons for staying with the more Windows-centric ancestors of PowerShell 7) and others that simply make life easier for fans of the script. The ability to paste a parameter
ForEach-Object to execute script blocks in parallel is a good example, since it is a parameter
-ThrottleLimit for keep the use of the thread under control.
Preview 3 and Telemetry
However, not all of it is good news. Lee, with an impressive opening, highlighted the additional telemetry that PowerShell would capture with this release. Microsoft's Sydney Smith provided more details and, perhaps most importantly for some users, explained how to disable extraction.
The new data points that are collected include counts of types of applications such as Cmdlets and Functions, hosted sessions and PowerShell starting by type (API vs. Console).
Everything seems harmless enough and the company wants the information to balance the posts in the feedback forums by the most vocal members of the community to understand how the tool is being used.  However, for the benefit of those who get nervous about data extraction, Smith highlighted the environment variable
POWERSHELL_TELEMETRY_OPTOUT that can be set to true
yes ] or
1 to prevent PowerShell from throwing something at Redmond servers.
We have asked Microsoft for a little more detail and will update it if the software giant responds.
And, of course, you can always analyze what lurks inside GitHub yourself if you have a free afternoon or two. ®