PowerShell is an administrative tool that allows advanced users and system administrators to automate a number of tasks and manage the configuration of their networked systems.
The host application for Powershell is called the Integrated Scripting Environment (ISE). Admins usually execute tasks by using .Net classes called “cmdlets” (commandlets).
Cmdlets are often used in scripts that can be written in the scripting language associated with Powershell.
The first version of Powershell, also known as the “Windows Powershell” was code-named “Monad” and was presented to the public for the first time during the Professional Developers Conference held in September 2003; it was then released as windows component in November 2006. At that time the following operating systems supported Powershell 1.0:
- Windows XP SP2
- Windows Server 2003 SP1
- Windows Vista
Since then, several versions of Powershell have been released. Versions 2.0, 3.0, 4.0, and 5.0 were improvements of the previous versions with new features added to the previous program with each new iteration.
With Powershell 5.1, released with the Windows 10 Anniversary Update on August 2, 2016, Microsoft branched the program into two editions. One was the normal desktop version that was an upgrade of the previous Powershell running on the .NET Framework stack, while the other called the Core edition ran on the .NET Core. The Powershell 5.1 Core was included in the Windows Server 2016 Server.
In 2016 Microsoft introduced Powershell Core 6.0. This was a different software which was not a Windows-only product but was open source and free. It allowed cross-platform usage with macOS and Linux.
Microsoft later launched Powershell 7 which was intended as a full replacement of Powershell 5.1 and Powershell 6. It introduced several new features and allowed compatibility with modules of the previous versions of Powershell that run on the .NET Framework stack.
Differences Between Powershell and PowerShell core
There are several differences between the Core and Desktop versions of Powershell. It should be kept in mind that some modules are missing from the Core version of Powershell, so if your organization’s systems are dependent on such modules, replacing Powershell with Powershell Core may not be a viable option.
Other than that, Microsoft seeks to completely replace Powershell with Powershell Core with the Core version getting new updates, so it may be better to replace Powershell with Core if no critical modules are missing.
Here is the table which lists the differences between Windows PowerShell and PowerShell Core.
Installing Windows PowerShell 5.1 and Powershell 7 Side by Side
Certain organizations may want to upgrade their systems to Powershell Core. It is relatively easy to do so. Keep in mind that if you migrate to Powershell Core, you will still be able to run the existing Windows Powershell in the same machine side by side.
Start PowerShell Core by going to Run –> pwsh
Start Windows PowerShell by going to Run –> powershell
Keep in mind that if you are using Powershell 5.X it will not be replaced, but Powershell version 6.X will be replaced by installation of Powershell 7.
To write scripts in PowerShell Core, you can download Visual Studio Code.
In summary, Powershell Core is a new Powershell that has many features that Windows Powershell lacks. However, this does not mean that Powershell 5 is now defunct, rather it is up to the system admin to decide when, or if, migration should be done.