Microsoft announced the general availability of PowerShell Core 6.0 on January 10, 2018.
PowerShell Core is a new version of PowerShell, a command-line shell and scripting language that ships with Microsoft Windows.
The release of PowerShell Core increases the number of PowerShell editions to two. There is the decade-old PowerShell that is integrated into all recent versions of Microsoft’s Windows operating system and the new PowerShell Core.
Microsoft sees PowerShell Core as an evolution of PowerShell. The former is available as a cross-platform application, the latter only for Windows.
The cross-platform nature of PowerShell Core means that scripts that you write will run on any supported operating system. You can write PowerShell Core scripts on Windows, and use them on supported Mac OS X or Linux devices. There are even experimental (unsupported) versions for ARM devices.
Microsoft works actively on PowerShell Core. PowerShell, on the other hand, is in a state that can best be compared to extended support for Windows versions. Microsoft has no plans to add features to PowerShell, but it will release critical bug fixes and security updates.
However, there are currently no plans to introduce new functionality to Windows PowerShell. This means that the risk of regression will be very low for Windows PowerShell, so you can count on it as a stable platform for your existing workloads.
PowerShell Core installs side by side on Windows. In short: PowerShell Core does not affect Windows PowerShell in any way on Windows devices.
PowerShell Core 6.0 is not as powerful as PowerShell 5.1. One core reason for that is that PowerShell has access to the .NET Framework and .NET Standard while PowerShell Core to the less-feature-rich .NET Core and .NET Standard.
Some technologies available to Windows PowerShell are not supported by .NET Core. Microsoft notes that some of the technologies may return in future releases but that this won’t be the case for all of them.
The company mentions PowerShell Workflows, PowerShell Snap-ins, WMlv1 cmdlets and executing Desired State Configuration resources specifically. The Breaking changes for PowerShell 6.0 document offers further details.
The differences between PowerShell and PowerShell Core
|Versions||1.0 to 5.1||6.0|
|Platforms||Windows only (client and server)||Windows, Mac OS, Linux|
|Dependency||.Net Framework||.Net Core|
|Usage||Relies on .Net Framework runtime||Relies on .Net Core runtime|
|Launched as||powershell.exe||pwsh.exe (Windows), pwsh (Mac and Linux)|
|$PSVersionTable.PSEdition||Set to Desktop||Set to Core|
|Update policy||critical bug fixes only||all updates (features, bugs)|