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 Server 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.

Join the 4sysops PowerShell group!

8+

Users who have LIKED this post:

  • avatar
  • avatar
Share

Related Posts

10 Comments
  1. Luc Fullenwarth 2 years ago

    Excellent one Wolfgang!

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

    2+

  2. Adam Rush 2 years 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

    2+

  3. ploni 1 year ago

    "Microsoft will no longer develop Windows PowerShell, which today is included in Windows 10 and Windows 2016"

    That should be Server 2016.

    1+

  4. Cad man 12 months ago

    Why has Microsoft made Poweshell such a push in MCSA Certs when they were planning to reduce its content?

    2+

  5. PaulW 10 months ago

    Cad Man: reduce it as in making it available on all platforms?

    1+

  6. søren 9 months ago

    Wry make PowerShell Core that will not support all code.
    From Powershell ISE Windows 10?

    Can you use Win forms anymore or is that dead also i Powershell Core.
    I cant find any totorials about that.

    So are every Powershell script dead in 3-5 years when Microsoft will not support the build-in Powershell 5.1 anymore or what do people do.
    Start all over in a new script language that can do some off the things.
    Powershell Core dont even have a menu save button to script what I can see in Version 6.0.3.
    Its like going back in time to CMD, and alot off limitations.

     

    6+

    Users who have LIKED this comment:

    • avatar
    • avatar
    • Michael Pietroforte 9 months ago

      You are right, it doesn't really make sense. The number of people who will use PowerShell Core on other operating systems will stay relatively small compared to the PowerShell users on Windows. This means that the majority of PowerShell users won't see an update any time soon because most organizations can't move to PowerShell 6. It is a strategic mistake, one of many that Microsoft made lately.

      5+

      Users who have LIKED this comment:

      • avatar
  7. David Figueroa 9 months ago

    I had recently (like a month ago) seen an article where they mentioned that the support for WinForms in PSCore is coming.  I took a quick peek, and I found this.. (not the article I had originally read, but shows the same info).

    https://www.theregister.co.uk/2018/05/07/microsoft_announces_net_core_30_including_windows_desktop_applications/

    Those forms & wpf will remain on windows only, but the support will be there 🙂

    David F.

    1+

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 - 2019

Log in with your credentials

or    

Forgot your details?

Create Account