Microsoft revamps programming language PowerShell as Windows 10 use trails Linux

Microsoft is working on a plan to boost PowerShell usage among Windows users.
Written by Liam Tung, Contributing Writer

Three years after releasing PowerShell Core for Linux and macOS, Microsoft has announced PowerShell 7, the newest version of PowerShell Core. 

Only in March, Microsoft released PowerShell Core 6.2 but instead of calling this version PowerShell Core 6.3, it has named it version 7. 

At the same time Microsoft is planning to release a "full replacement" of Windows PowerShell 5.1, the last version of Windows-only PowerShell that was released in 2016 and runs on the .NET Framework as opposed to PowerShell Core, which runs on .NET Core. 

SEE: 20 pro tips to make Windows 10 work the way you want (free PDF)

As Microsoft explains on its developer blog, most growth in PowerShell Core adoption has come from Linux users, suggesting Microsoft was right to extend availability to non-Windows platforms. 

Linux usage of PowerShell is the key reason Microsoft's programming language for the first time this March reached 45 in Tiobe's programming-language popularity index.  

However, Windows usage of PowerShell Core has been flat, representing less than 20 percent of about 11 million PowerShell startups today. 

"We believe that this could be occurring because existing Windows PowerShell users have existing automation that is incompatible with PowerShell Core because of unsupported modules, assemblies, and APIs," explains Steve Lee, principal software engineer for PowerShell. 

"These folks are unable to take advantage of PowerShell Core's new features, increased performance, and bug fixes."


Microsoft's chart shows the number of times pwsh.exe, or just pwsh on Linux/macOS, was started unless telemetry was disabled.

Image: Microsoft

To boost Windows usage, Microsoft is planning to release a "full replacement of Windows PowerShell 5.1" so Windows PowerShell and PowerShell Core users on other platforms have the same version of PowerShell. 

Additionally, PowerShell 7 users will have a "very high level of compatibility" with Windows PowerShell modules used today. 

"PowerShell Core 6.1 brought compatibility with many built-in Windows PowerShell modules, and our estimation is that PowerShell 7 can attain compatibility with 90+ percent of the inbox Windows PowerShell modules by leveraging changes in .NET Core 3.0 that bring back many APIs required by modules built on .NET Framework, so that they work with .NET Core runtime," explained Lee.   

Microsoft is planning to drop the 'Core' in its documentation for PowerShell 7 and is also aligning it with the .NET Core support lifecycle, which will enable a Long Term Service (LTS) release and a non-LTS release. 

Users should be able to access the first PowerShell 7 preview release in May, but the actual date depends on progress of Microsoft's work to integrate PowerShell with .NET Core 3.0. Microsoft expects it to reach general availability (GA) sometime after .NET Core 3.0 hits GA. 

PowerShell 7 will eventually ship with Windows alongside Windows PowerShell 5.1, but since .NET Core's timeline doesn't align with Windows updates, it's not known which version of Windows 10 and Windows Server it will ship with. 

More on Microsoft's PowerShell

Editorial standards