Profile picture
Sidharth R
  • Home
  • Posts
  • Journal
  • Home
  • Posts
  • Journal
  • Search

Demystifying PowerShell Versions and Editions

Updated: 27 Dec 2024 ⚬ Page views: 517

What does the name PowerShell refer to?

PowerShell is a command-line shell and scripting language that is built on top of the .NET Framework. It can be used to automate tasks, deal with structured data (e.g. JSON, CSV, XML, etc.), interact with REST APIs, and more.

Powershell is available in two editions: Desktop and Core. The Desktop edition is available on Windows 7/8/10/11, Windows Server 2019/2022, and in later versions of Windows. The Core edition is cross-platform and is available on Windows, macOS, and Linux. 1

Key differences between PowerShell Desktop and PowerShell Core

Differences between powershell editions

The following table shows the differences between PowerShell Desktop and PowerShell Core in more detail.

PropertyPowerShell DesktopPowerShell Core
Cross-platformNoYes
Open-sourceNoYes, available on GitHub
AvailabilityWindows 7/8/10/11, Windows ServerWindows, macOS, Linux, Windows Nano Server and Windows IoT
Other name(s)Windows PowerShell-
Versions 2 (as of Oct 2024)1.0, 2.0, 3.0, 4.0, 5.0, 5.16.0, 6.1, 6.2, 7.0, 7.1, 7.2, 7.3, 7.4
Built on top of.NET Framework.NET Core

Note that if someone refers to PowerShell 6.0, 7.0, 7.1, or 7.2, they are referring to PowerShell Core. Similarly, if someone refers to Windows PowerShell 5.0 or 5.1, they are referring to PowerShell Desktop.

In short, PowerShell Desktop is the Windows-only version of PowerShell. It is built on top of the .NET Framework and is available on Windows 7 (onwards) and on Windows Server. It is also known as Windows PowerShell.

PowerShell Core is the cross-platform version of PowerShell. It is built on top of .NET Core and is available on Windows, macOS, and Linux.

.NET Framework vs .NET Core

Venn diagram illustration of .NET Framework vs .NET Core PowerShell on Linux and macOS uses .NET core, which is a subset of the full .NET Framework (available on on Microsoft Windows). Understanding this is crucial because PowerShell provides direct access to the underlying framework types and methods. As a result, scripts that run on Windows may not run on non-Windows platforms because of the differences in the underlying frameworks.

Which version of PowerShell do you have?

Windows PowerShell comes pre-installed on Windows OS, while PowerShell Core is cross-platform tool which can be installed on Windows, Linux, and macOS.

To check which edition of PowerShell you’re using, simply enter the following command in your PowerShell terminal:

$PSVersionTable

This will display the version, edition, and other information about your PowerShell. For example, if you’re using PowerShell Desktop on Windows 10/11, you’ll see something like this:

Name                           Value
----                           -----
PSVersion                      5.1.19041.1320
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}

What’s the difference between Windows PowerShell 5.1 and PowerShell 7.x ?

Windows PowerShell 5.1 is based on the .NET Framework v4.5. With the release of PowerShell 6.0, PowerShell transitioned to an open-source cross-platform (Windows, macOS, and Linux) project built on .NET Core 2.0.

The most notable differences are in the availability of PowerShell cmdlets between Windows and non-Windows platforms and the changes that arise from the differences between the .NET Framework and .NET Core. 3

Further, each new release of PowerShell is built on a newer version of .NET, like:

  • PowerShell 6.0 - Built on .NET Core 2.0
  • PowerShell 6.1 - Built on .NET Core 2.1
  • PowerShell 7.1 - Built on .NET 5.0
  • PowerShell 7.5 - Built on .NET 9.0

What can you do to clear up confusion about PowerShell versions and editions?

It’s important to be specific about the version and edition of PowerShell you are using when writing, talking, or posting about it on social media or forums. This will help others understand what you are talking about and avoid confusion.

  • If you are on Linux or macOS, use the term ‘PowerShell Core’ instead of PowerShell.
  • If you are using the default PowerShell on your Windows machine, use the term ‘Windows PowerShell’ (or PowerShell Desktop) instead of PowerShell.

References


  1. https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_powershell_editions?view=powershell-7.3 ↩︎

  2. https://en.wikipedia.org/wiki/PowerShell ↩︎

  3. https://learn.microsoft.com/en-us/powershell/scripting/whats-new/differences-from-windows-powershell?view=powershell-7.4 ↩︎

Nerdsid.com

Links
  • Home
  • Contact
  • About
  • Posts
  • Journal
  • Quotes
© 2025 Sidharth R.
All content on this website is licensed under CC BY-NC-SA 4.0.