Monthly Archive


Monthly Archives: January 2019

More PowerShell v6 thoughts

My last post - about PowerShell v6 – brought some interesting comments. Here’s some more PowerShell v6 thoughts generated by those comments.

Comment Quote 1

“What’s the incentive to upgrade on Windows from 5.1 to 6.x? My understanding is that not all functionality is present in the open source version (specifically, WIM and COM). It’s not functionality that I use, personally, but I don’t see much reason to “upgrade” while the new version is still working to reach feature parity. “


PowerShell v6 supports COM. I don’t use WIM so don’t know how much WIM support is available in Windows PowerShell. If it was meant to be WMI then v6 has always included the CIM cmdlets which are a better choice than the WMI cmdlets. The WMI accelerators are also available in v6 if you need them.

All of the CDXML (CIM/WMI) based modules that I’ve tested work in v6.


Comment Quote 2

“Also, and this is not as trivial as it seems, the command name changes from “powershell” to the incredibly ugly “pwsh” – which will wreak havoc with many scripts and people’s muscle memory”


The official reason for the introduction of pwsh was that it was confusing having 2 powershell.exe on the PATH when you have v6 and v5.1 installed on the same machine. Having said that the thread that introduced the change was originally about reducing the length of the executable name because Linux users didn’t want to type powershell – it was deemed to be too long! Pwsh was a compromise and like all compromises usually pleases no one.


Comment Quote 3

“So I think that all this data shows is that Powershell 6.x is growing in popularity on Linux, but it’s not yet an attractive alternative to 5.x for Windows users. I certainly hope that the message Microsoft take from the figures is that they’ve got some way to go yet to persuade Windows users that the new Powershell is an actual improvement, and not to further abandon Windows Powershell users!”


The problem with PowerShell on Linux is that much of the PowerShell functionality we take for granted on Windows – networking, storage, WMI – just isn’t available on Linux. There isn’t much on the gallery either for Linux as far as I can see. So why the great usage on Linux? To my mind PowerShell on Linux is currently around the Windows PowerShell v1-v2 level for functionality.

The WindowsCompatibility module makes most, if not all, Windows PowerShell modules work in v6 but its a workaround not a long term solution.

I have a lot of difficulty understanding where PowerShell v6 is going – hopefully more will be revealed in 2019.


Comment Quote 4

“If I can’t do ActiveDirectory administration with V6 then it is a show stopper in most “Windows” shops”


On Windows 10 1809 / Server 1809 / Server 2019 the AD module works in PowerShell v6.1.1 EXCEPT when trying to access or modify the protected from accidental deletion attribute.

The AD module works in PowerShell v6.1.1 via the WindowsCompatibility module on earlier versions of windows

PowerShell dashboard

The PowerShell dashboard shows some interesting data:


Linux is by far the dominant platform for PowerShell v6 usage – about 4 times as much usage on Linux as Windows for December 2018!  Does this mean that PowerShell is destined to become a Linux orientated tool?  It has been stated by the PowerShell team that usage patterns will drive development so Windows users need to step up if they want input into future PowerShell


PowerShell 6.1 is taking over from 6.0 but a significant number of users are still using 6.0 and 6.1 previews – Why?


Very little V6.2 preview usage is recorded


Windows 10 is the dominant Windows version for PowerShell v6


North America accounts for just over half the v6 usage. UK is next at 4.91%.  Time for the rest of the world to contribute?


PowerShell is now open source and as such will be driven by “the community” in other words those how get involved and push their needs and/or pet views of where PowerShell will go. Is that a good thing?


The idea behind Windows PowerShell was for it to become the de facto scripting language and automation engine on Windows. It succeeded. What is the long term PowerShell v6 goal? Is to become the de facto cross-platform scripting language and automation engine? if so there needs to be a ton of functionality appear so that Linux can be managed at the same level as Windows.