Microsoft To Unify PowerShell with Coming PowerShell 7
Microsoft on Friday announced plans to replace Windows PowerShell with its newest Core product, which will be called "PowerShell 7."
PowerShell 7 could appear as early as May as a preview release, but Microsoft needs to validate it with .NET Core 3.0 first, so the schedule could slip. Microsoft is aligning PowerShell 7 releases with .NET Core releases, so it expects that PowerShell 7 could reach "general availability" status "sometime after the GA of .NET Core 3.0."
Microsoft officials previously suggested that .NET Core 3.0 would ship sometime "in the second half of 2019."
Many would expect the next version of PowerShell Core to be "PowerShell Core 6.3," since Microsoft released PowerShell Core 6.2 just last month. However, Microsoft plans to drop the "Core" nomenclature altogether from the product while upping the versioning.
PowerShell 7 is a product leap of sorts, but it also reflects the notion that most of the incompatibility issues between the Windows and Core versions of PowerShell have been addressed. Microsoft estimated that "PowerShell 7 can attain compatibility with 90+% of the inbox Windows PowerShell modules," according to the announcement, which was authored by Steve Lee, a principal software engineer manager for PowerShell at Microsoft.
PowerShell users likely recall similar product leaps back when Microsoft announced that it was skipping Windows PowerShell 6.0 and going straight to PowerShell Core 6.0 instead. In essence, Windows PowerShell 5.1 turned out to be the last release of that product, and Microsoft put its development efforts instead into the PowerShell Core product, which got the "6.0" versioning artificially stuck on it.
The Windows Rut
PowerShell Core 6.0 was a multiplatform release for Windows, Linux and macOS operating systems. Back when PowerShell Core 6.0 was released in January of last year, Microsoft had admitted that getting new PowerShell Core 6.0 features to work with existing Windows PowerShell scripts was a work in progress. Compatibility issues were getting addressed via WindowsPowerShellCompatibilityPack module updates, the company had said.
PowerShell Core usage is currently being led by Linux users to a large degree. Microsoft's announcement included a graph showing that Windows PowerShell Core use has stayed flat over the last couple of years while Linux PowerShell Core use has leapt. It's thought that Windows users may have gotten stuck on processes that depend on Windows PowerShell. Microsoft is positioning PowerShell 7, in part, to get them out of that rut, according to Lee.
"We believe that this [lag in PowerShell Core use on Windows] could be occurring because existing Windows PowerShell users have existing automation that is incompatible with PowerShell Core because of unsupported modules, assemblies, and APIs," Lee noted.
Longer Lifecycle Support
PowerShell 7, in addition to being timed with .NET Core releases, will align with "the .NET Core support lifecycle, enabling PowerShell 7 to have both LTS (Long Term Servicing) and non-LTS releases," Lee explained. That circumstance means that a PowerShell 7 release will be supported for either three years or for one year after a subsequent LTS release, "whichever is longer." Currently, PowerShell Core follows a six-month update cycle under the Microsoft Modern Lifecycle Policy.
Microsoft eventually plans to ship PowerShell 7 with the Windows operating system, and it'll include Windows PowerShell 5.1, too, Lee indicated. However, Microsoft is still ironing out some management kinks for this so-called "in-box" PowerShell 7, he added.
Right now, Microsoft can't say when Windows users will get the in-box PowerShell 7 solution. It's difficult to predict because the Windows timeline differs from the .NET Core time, Lee explained.
Microsoft is permitting the two PowerShell versions to coexist for a while. It's currently possible to run PowerShell Core alongside Windows PowerShell without conflict. However, it seems clear that PowerShell 7 will eventually replace Windows PowerShell. For instance, Lee characterized PowerShell 7 as being "a full replacement of Windows PowerShell 5.1."
Kurt Mackie is senior news producer for the 1105 Enterprise Computing Group.