Microsoft recently released a new edition of PowerShell, known as PowerShell Core. PowerShell Core is quite different from Windows PowerShell in multiple ways. First and foremost, PowerShell Core is a cross-platform, meaning that it can run on Windows, Linux and macOS. Second, it is built on .NET Core, whereas Windows PowerShell was built on .NET Framework. It was necessary to move away from the .NET Framework in order to provide the cross-platform interoperability. The latest (and probably last) version of Windows PowerShell is 5.1. PowerShell Core currently has versions 6.0 and 6.1.
Due to the shift from the .NET Framework to .NET Core, any scripts created using Windows PowerShell 5.1 or earlier may need to be modified in order to execute successfully on 6.0, as the .NET Core contains less functionality than the .NET Framework. Documentation for PowerShell Core can be found here.
PowerShell Core does not include an ISE (Integrated Scripting Environment). Instead, Visual Code, a free download, is the recommended script authoring tool. Also dropped from PowerShell Core are workflows. Workflows derived its functionality from the .NET Framework, so it follows that it is not available in PowerShell Core.
PowerShell Cores is supported on the following platforms:
Windows 7 and later
Windows 2008 and later
Ubuntu 14.04, 16.04, and 17.04
Debian 8.7+ and 9
Red Hat Enterprise Linux 7
Fedora 25 and 26
It should be noted that PowerShell Core 6.0 and 6.1 can be run side by side with Windows PowerShell versions, allowing for testing and migrating of scripts.
It’s been reported that Microsoft will put all of its PowerShell development efforts into PowerShell Core and only provide patches for Windows PowerShell. To download PowerShell 6.0 on Windows navigate to here and for macOS and Linux, use here.