To provide the best overview, we will focus on the most valuable information. First, you need to know about the two different versions and the differences between them.
There are two editions of PowerShell:
The $PSVersionTable
variable holds the information for the currently used PSVersion
and PSEdition
.
The same terminology can be observed with Windows PowerShell versus PowerShell Core:
- Windows PowerShell is built on top of the .NET Framework:
- Versions 1 to 5.1
- Available on Windows and Windows Server only
- Delivered as a built-in component and via WMF
- Built on top of the .NET Framework (also known as FullCLR)
$PSVersionTable.PSEdition
is set to Desktop
- PowerShell Core is built on top of .NET Core:
- Version 6++ (and Nano Server/Windows 10 IoT)
- Available on Windows, macOS, and Linux
- Delivered via MSI, ZIP, or PKG (macOS)
- Built on top of the current .NET Core version (also known as CoreCLR)
$PSVersionTable.PSEdition
is set to Core
PowerShell Core is available in Windows Server 2016 Nano Server and Windows 10 IoT, but also in PowerShell Core 6 and newer versions.