Microsoft Transitioning Windows PowerShell 6.0 into PowerShell Core

Microsoft recently explained its Windows PowerShell roadmap plans, which will increasingly focus on PowerShell Core, going forward.

PowerShell Core has capabilities for managing "the basic features" of the Windows PowerShell scripting language, according to an MSDN article, which described it as a "module." However, PowerShell Core essentially will be supplanting Windows PowerShell 6.0. The PowerShell team explained some of these details last week in an announcement of its PowerShell 6.0 roadmap plans.

The most recent version of Windows PowerShell for use in production environments is Windows PowerShell 5.1, which was released as two editions, according to Wikipedia's history. There was a Desktop edition for use on Windows systems. There also was a Core edition that was designed for the .NET Core. The PowerShell Core edition was bundled with Nano Server, the minimal footprint configuration option of Windows Server 2016.

At this point, it might be expected that Microsoft would be planning to release Windows PowerShell 6.0 as the successor to Windows PowerShell 5.1. Windows PowerShell 6.0 actually was released in beta form last year, according to a PowerShell team blog post and appeared as open source code. However, Windows PowerShell 6.0 instead will get subsumed by PowerShell Core, which is currently at the beta stage, having been released last month.

Here's how the team explained that change in plans:

The next release of PowerShell (6.0) was open-sourced last year and is currently in beta. However, it is PowerShell Core designed to run cross-platform on Windows, Mac, and Linux. PowerShell Core runs on top of .NET Core, a cross-platform, open-source version of the code base powering most of the Windows world. This version of PowerShell will be different than the Windows PowerShell edition you see built into Windows today.

Microsoft is now referring to "PowerShell Core" as "PowerShell Core 6.0." The nomenclature is confusing, since few people recall even a PowerShell Core 1.0 release. The important part, though, is that PowerShell 6.0 is going away, replaced by PowerShell Core.

This month, Joey Aiello, a program manager on the PowerShell team, responded to direct question in that regard, indicating that PowerShell 6.0 won't get developed in the near future:

The goal with PowerShell Core 6.0 and all the compatibility shims is to supplant the need for Windows PowerShell 6.0 while converging the ecosystem on PowerShell Core. So no, we currently don't have any plans to do a Windows PowerShell 6.0.

Aiello explained a bit about the editions of PowerShell. Windows PowerShell is built on top of the .NET Framework and goes by the "Desktop" edition name. It's built into Windows and Windows Server.

PowerShell Core is built on top of .NET Core and goes by the "Core" edition name. It's cross platform, and available for Linux, Mac OS and Windows.

Right now, Microsoft is trying to make PowerShell Core "as compatible with Windows PowerShell as technically possible," Aiello indicated. It's doing that by standardizing it on .NET Standard 2.0, a set of common APIs for the .NET platform.

With .NET Standard, Microsoft is creating one base class library for developers. They won't have to deal with the "three major flavors of .NET," said Immo Landwerth, a program manager on the .NET team. He explained in a 2016 blog post that Microsoft had forked the .NET code for various purposes "quite a bit over the years." It was done to support different operating system platforms, but the forking caused problems for developers. Microsoft expects that .NET Standard will make it easier for developers to share and reuse code between platforms, and it is targeting its compatibility efforts via .NET Standard 2.0, Landwerth added.

The drive toward compatibility is ongoing. Aiello noted that "most of the modules that ship as part of Windows (e.g. DnsClient, Hyper-V, NetTCPIP, Storage, etc.) have not been explicitly ported to .NET Core yet."

At this point, Microsoft wants testers to give feedback on latest beta release of PowerShell Core (currently at version 6.0, beta 4), which is housed at this GitHub repository. Verification that existing scripts will work with it will help advance PowerShell Core more toward production release, Aiello indicated. Microsoft is targeting the release of PowerShell Core 6.0 by "the end of the year."

As for Windows PowerShell 5.1, it'll be a "supported component of Windows 10 and Windows Server 2016," Aiello promised. However, it'll "likely not receive major feature updates or lower-priority bug fixes" over time, he added.

About the Author

Kurt Mackie is senior news producer for 1105 Media's Converge360 group.


  • Microsoft Starting To Roll Out New Excel Connected Data Types

    Microsoft on Thursday announced some Excel and Power BI enhancements that add "connected data types" on top of the standard strings and numbers options.

  • Windows 10 Users Getting New Process for Finding Optional Driver Updates

    Accessing Windows 10 drivers classified as "optional updates" will be more of a manual seek-and-install type of experience, starting on Nov. 5, 2020, Microsoft explained in a Wednesday announcement.

  • Microsoft Changes Privacy Platform Name to SmartNoise

    Microsoft Research has changed the name of its "differential privacy" platform from "WhiteNoise" to "SmartNoise," according to a Wednesday announcement.

  • Why Restarting a Failed SCVMM Job Might Be a Bad Idea

    Occasionally, restarting a failed System Center Virtual Machine Manager job can leave your virtualization infrastructure in an unknown state. Here's how to avoid that.

comments powered by Disqus