When Microsoft open-sourced PowerShell and announced its availability for other operating systems, it was not yet foreseeable what this would mean for Windows PowerShell. It is now clear the future belongs to PowerShell Core on all operating systems. Users working on Windows will probably have to sacrifice some features.

Wolfgang Sommergut

Wolfgang Sommergut has over 20 years of experience in IT journalism. He has also worked as a system administrator and as a tech consultant. Today he runs the German publication WindowsPro.de.

Thus, the new strategy means that Microsoft is porting the command-line interface (CLI) and the scripting environment to Linux and macOS. Moreover, they want a standardized implementation on all platforms, including Windows.

PowerShell 5.1 is the last Windows version ^

In a blog post, the PowerShell team explained what the new cross-platform ambitions mean for Windows. The core message (pun intended) is that Microsoft will no longer develop Windows PowerShell, which today is included in Windows 10 and Windows 2016.

Microsoft will only provide bug fixes but won't add any new features. According to the roadmap, Windows PowerShell 5.1 will continue to be a component of the current operating system. However, Microsoft has made no long-term statements with regard to the successors of Windows 10 and Server 2016.

.NET Core as the basis ^

You probably know that Windows PowerShell is based on the .NET Framework that is only available for Windows. Hence, for a portable PowerShell Microsoft is developing .NET Core that implements the .NET Standard (for further information read the .NET Standard FAQ). With the support of the open-source community, they have been porting .NET Core to operating systems other than Windows.

NET Core is a subset of the .NET Framework

NET Core is a subset of the .NET Framework

Because .NET Core is a subset of the .NET Framework, it lacks several technologies. For instance, the Windows Presentation Foundation (WPF), Windows Forms, and Windows Workflow are missing (more information: Choosing between .NET Core and .NET Framework). Accordingly, PowerShell 6.0 doesn't support Workflows.

Module compatibility ^

If you install the current beta 6 on Windows 10, it will notify you on launch that Windows PowerShell has added the module path.

PowerShell automatically appends the path to existing modules

PowerShell automatically appends the path to existing modules

The reason for this is that the developers haven't ported most cmdlets to Core yet. However, because of the binary compatibility with existing .NET assemblies, you should be able to continue using your modules.

Included modules of PowerShell 6 beta 6 on Ubuntu

Included modules of PowerShell 6 beta 6 on Ubuntu

If you install PowerShell Core beta 6 on Ubuntu, you will notice that the number of modules included is quite limited. Most of the cmdlets belong to the core modules Management, Security, and Utility. On board is PowerShellGet, which is particularly important because .NET Core consists of a collection of NuGet packages.

Uncertain future for PowerShell Web Access ^

PowerShell's standardization on multiple platforms might leave behind additional Windows-specific features. For instance, the future of PowerShell Web Access is unclear considering that it only runs on IIS and that Microsoft's web services are unavailable for other operating systems.

Regarding PowerShell remoting, it appears as if OpenSSH might rise to be the preferred method for remote connections.

PowerShell ISE deprecated ^

In addition, visible changes are taking shape with respect to the tools included. PowerShell ISE, the graphical development environment, is no longer available for PowerShell 6 Core. Microsoft will promote Visual Studio Code (VSC) instead, including the PowerShell plug-in. This tool is based on web technologies and also available for multiple platforms.

As a PowerShell-specific development environment, ISE offers a couple of useful features, such as remote tabs or PSEdit, that allow you to edit remote files. The generic VSC does not offer comparable functionality.

Availability ^

At the time of this writing, PowerShell Core is available as beta 6. Microsoft plans to release the final version at the end of the year. You can install it side by side with Windows PowerShell.

Win the monthly 4sysops member prize for IT pros

Share
6+

Users who have LIKED this post:

  • avatar
  • avatar

Related Posts

3 Comments
  1. Luc Fullenwarth 4 weeks ago

    Excellent one Wolfgang!

    If your post hadn't already been on 4SysOps I would have published the link in the News section 😀

    1+

  2. Adam Rush 3 weeks ago

    Great post, although I believe you can do remote editing in VSCode; although I haven't confirmed this myself yet: https://github.com/PowerShell/PowerShellEditorServices/pull/399

    0

Leave a reply

Your email address will not be published. Required fields are marked *

*

CONTACT US

Please ask IT administration questions in the forum. Any other messages are welcome.

Sending
© 4sysops 2006 - 2017

Log in with your credentials

or    

Forgot your details?

Create Account