Difference between PowerShell Core LTS and Stable
As most are aware, there are now two versions of Microsoft PowerShell for use in the enterprise. There is the legacy version of PowerShell, version 5.x, which is included with modern Windows versions. As most may know, PowerShell Core is available as a download from the official Github site. However, there are different options for downloading PowerShell Core. What are they, and how are they different? Let’s look at the difference between PowerShell Core LTS and Stable versions and see which you should choose.
Downloading and Installing PowerShell Core
Before looking at the different options for downloading PowerShell Core, let’s look at how you download and install PowerShell Core. Unlike the built-in version of Windows PowerShell 5.x that is included with Windows, PowerShell Core is currently delivered via the official Github download page.
You download and install PowerShell Core as a standalone installation. PowerShell Core is built on top of .NET Core, which means that it is truly a cross-platform PowerShell platform. It can be installed and ran on top of Windows, Linux, and Mac.
Below, are the options available for configuration during the installation of PowerShell Core.
PowerShell Core is noted by the different default black background compared to the standard legacy Windows PowerShell prompt with the blue background.
Difference between PowerShell Core LTS and Stable
To the question at hand, what is the difference between Windows PowerShell Core LTS and Stable? With modern Windows Server versions, we have become accustomed to the LTSB and semi-annual releases. With PowerShell Core, Microsoft is doing something similar. The answer to this question comes down to the PowerShell support lifecycle. It is important to note that Microsoft makes a distinction between “Windows PowerShell” which is shipped with Windows, and PowerShell Core, which isn’t included with Windows licensing agreements.
Microsoft notes that with the release of PowerShell Core 7, PowerShell Core continues support under the Modern Lifecycle Policy, which you can read more about here.
The lifecycle of PowerShell Core 7 is directly linked to the support of the underlying .NET framework and the .NET Core’s support lifecycle. With this said, there are two release cadences that you can choose from – Long Term Support (LTS) and Stable.
PowerShell Core LTS
Powershell Core LTS (Long Term Support) release is currently PowerShell Core 7.0. The support of PowerShell Core 7 ends with the support of .NET Core 3.1, the underlying .NET Core release. When the next PowerShell Core LTS release drops, it will follow the next .NET Core LTS release’s support lifecycle.
Below is the current Powershell Core releases end of life:
Version | End-of-life |
---|---|
7.1 | mid-February 2022 (projected) |
7.0 | December 3, 2022 |
6.2 | September 4, 2020 |
6.1 | September 28, 2019 |
6.0 | February 13, 2019 |
Updates to the PowerShell Core LTS releases only contain critical security and servicing updates and fixes. The updates to the LTS releases are meant to minimize the impact on your production infrastructure.
PowerShell Core Stable
The current Stable release is a release that happens between LTS releases. This means that with the stable releases, you are getting not only critical security fixes but also innovations and new features as well on top of what the LTS release contains. The current Stable release is supported for three months after the next Current or LTS release.
This means the Stable release lifespan overlaps the LTS release and spans into the next timeline between the next LTS and the release of the next stable release. You can think of the stable release as a “bleeding edge” release with the latest features and functionality contained.
The Current release, a.k.a Stable, is on PowerShell 7.1, released in November 2020, and is built on .NET Core 5.0 (current) release.
PowerShell Core Preview
The Preview releases are considered “beta” releases. These releases contain the newest features and capabilities that are being developed. However, they are not meant to be used in production environments. These releases’ stability may be in question as they are simply for testing and “previewing” of the new features that are contained therein.
Choosing between LTS and Stable
For most in production environments, the LTS release will be the PowerShell Core release that you will choose to ensure the highest level of stability and least impact to production with bugfixes and other updates.
It would also make sense to run LTS in your production environments running PowerShell Core code and then also leverage PowerShell Stable releases in your DEV/Test environment where you are testing new features and functionality.
It can also make sense to run the Stable release in production if it contains new features or capability needed in the production environment that is not contained in the current PowerShell Core LTS release.
Wrapping Up
As you download PowerShell Core, you will need to decide which version of PowerShell Core you will download and install. Many may ask the difference between the PowerShell Core LTS and Stable releases when downloading PowerShell Core and which they should choose. The LTS version provides a stable release with the least amount of interruption to production environments. The Stable releases contain new features compared to the LTS release. However, they will contain feature updates on a more aggressive schedule than the LTS release. Deciding between the two will most likely come down to the stability of the PowerShell release used. The support lifecycle is directly tied to the underlying .NET Core release. You can preview the latest features developed with the Preview release. However, this release is not intended for production use.