Microsoft Improves Windows PowerShell Compatibility with New PowerShell Core 6 Module
Microsoft on Thursday announced the release of the Windows Compatibility Module 1.0.0 for PowerShell Core 6.
The module, which goes by the "WindowsCompatibility" name, lets PowerShell Core 6 users access PowerShell modules that Microsoft hasn't yet added natively to the PowerShell Core product. With the module in place, added PowerShell functionality gets imported without conflicting with existing PowerShell Core modules.
The module is currently just available for Windows machines. Microsoft possibly may add Linux and Mac support, according to the announcement by Bruce Payette of Microsoft's PowerShell Team.
Windows Compatibility Module 1.0.0 could prove useful for IT pros attempting to keep up with Microsoft's switch to PowerShell Core. In July of last year, Microsoft announced that it was transitioning from Window PowerShell to PowerShell Core 6.0, but not all of the modules and cmdlets were getting ported at that time. Microsoft's plan was to eventually add modules to the PowerShell Core product that would let users run these missing Windows PowerShell cmdlets.
The problem with the missing PowerShell cmdlets in PowerShell Core 6.0 apparently was largely addressed by PowerShell Core 6.1, which Microsoft released back in September. At that time, Joey Aiello, a program manager on the PowerShell team, had suggested that Microsoft had greatly improved Windows PowerShell support in PowerShell Core 6.1 by adding various modules.
The Thursday announcement by Payette suggested that Windows Compatibility Module 1.0.0 specifically bolsters support for PowerShell 6 users, although it has "significant limitations" because sometimes the cmdlets require objects to use a specific method or be of a specific type. This limitation is due to the module's reliance on "Implicit Remoting," which is what the Windows Compatibility Module uses to bring down its PowerShell "proxy functions," he explained.
However, the need to have this module installed is just a temporary measure right now.
"Over time, as more and more modules are ported to .NET Core/PowerShell 6 natively there will be less need for this module," Payette indicated.
Windows Compatibility Module 1.0.0 apparently can be an aid for users stuck on PowerShell 5.0, according to a Twitter post by Jeffrey Snover, a Microsoft Technical Fellow and chief architect for Azure Storage and Cloud Edge.
"It [WindowsCompatibility] closes the PS V5 vs V6 coverage gap and is just freaking amazing!" Snover wrote.
Snover is PowerShell's inventor.
While Windows Compatibility Module 1.0.0 supposedly supports PowerShell Core 6 users, it more properly might be considered to be a supplement for PowerShell Core 6.1 users because of a directory synchronization dependency. Here's how Payette explained the matter:
WindowsCompatibility depends on a feature introduced in PowerShell Core 6.1 for keeping the current working directory in both the local and compatibility sessions synchronized. Earlier versions of PowerShell will work with WindowsCompatibility but won't have this directory synchronization feature.
Payette offered some tips on how to address this synchronization path issue for PowerShell Core 6.0 users.
The Windows Compatibility Module can be obtained from the PowerShell Gallery repository. It gets installed using the Install-Module WindowsCompatibility command.
Kurt Mackie is senior news producer for the 1105 Enterprise Computing Group.