Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Open source PowerShell not a straight swap for Windows PowerShell

This Content Component encountered an error

PowerShell Core 6.0 — the open-source, cross-platform version of Windows PowerShell — does not have all the features that longtime PowerShell users may be looking for.

Last month’s official release of PowerShell Core might lead some to believe the product supersedes Windows PowerShell, but that’s not the case. And quite a few features that some IT workers might use regularly did not survive the move, such as WorkFlows, snap-ins, WMI v1 cmdlets and the ability to work with Desired State Configuration resources.

Windows PowerShell scripts for managing certain Microsoft products, such as Exchange and Skype for Business servers, most likely will fail when run on open source PowerShell, mainly because of changes to the underpinning framework each platform uses. Many modules developed for Windows PowerShell require the more advanced functionality available in the .NET Framework. But, because PowerShell Core runs on the pared-down .NET Core Framework, some compatibility is lost in the transition.

Administrators who rely on certain modules not available on PowerShell Core — the big ones include the Azure Resource Manager module and the Active Directory module — will most likely stay the course with Windows PowerShell until a viable alternative surfaces or the PowerShell team finds a way to reintroduce them to the open source PowerShell platform.

To get an idea of how many modules will work with PowerShell Core, use Tags:”PSEdition_Core” in the PowerShell Gallery search field. At the time of publication, just 37 items appear. Without the limiter, the total number of modules is more than 2,300. Users can make adjustments to get some modules working with PowerShell Core, but Microsoft won’t support issues tied to their use, the company said.

Peaceful coexistence

One of the main differences with this release is that PowerShell Core does not supplant Windows PowerShell. In years past, when a user upgraded Windows PowerShell, it replaced the previous version. The open source PowerShell project team decided to change this approach with PowerShell Core. On the Windows side, users can work with the current PowerShell even after they install PowerShell Core.

There were several changes to let these platforms peacefully coexist. Most notably, the executable for PowerShell Core is pwsh.exe to keep it distinct from powershell.exe used in Windows PowerShell. This change eliminates confusion as to which PowerShell the user wishes to call and avoids disrupting established workflows. And, because PowerShell Core is not yet a replacement for Windows PowerShell, the team envisions that administrators would use both until PowerShell Core matures to the point where a switchover can occur.

There is some uncertainty when — or if — Microsoft will end Windows PowerShell support. The company said it does not plan to produce new functionality for the tool and might not correct smaller bugs.

Microsoft supports PowerShell Core for Windows 7, 8.1, 10; Windows Server 2008R2, 2012R2, 2016; and releases in the Windows Server Semi-Annual Channel. It also supports PowerShell Core on several Linux distributions: Ubuntu 14.04, 16.04, and 17.04; Debian 8.7+, and 9; CentOS 7; Red Hat Enterprise Linux 7; OpenSUSE 42.2; and Fedora 25, 26. On the Apple side, Microsoft supports PowerShell Core on macOS 10.12+. There are PowerShell Core packages developed by contributors for Arch Linux, Kali Linux and AppImage, but Microsoft does not support those.

PowerShell’s recent surge in popularity among Windows shops came about from aggressive PowerShell development, wider use of cloud services and the influence of DevOps on the enterprise. As many organizations shift from the static client-server model to the “cattle” mentality where servers used for self-service get spun up and shut down quickly, an automation tool like PowerShell allows IT to meet the speed of business demands.

Now that a majority of the grunt work is done, the team behind open source PowerShell anticipates it will deliver a minor release every six months and previews every three weeks. This tool helps bridge the divide between Windows and Linux teams in some organizations, but it remains to be seen if PowerShell Core will be the one management tool to rule them all.