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

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.

Subscribe to 4sysops newsletter!

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.

avataravatar
10 Comments
  1. Avatar

    Excellent one Wolfgang!

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

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

  3. Avatar
    ploni 6 years ago

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

    That should be Server 2016.

  4. Avatar
    Cad man 6 years ago

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

  5. Avatar
    PaulW 5 years ago

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

  6. Avatar
    søren 5 years 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.

     

    avataravatar
    • Avatar

      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.

      avatar
  7. Avatar

    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.

Leave a reply

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

*

© 4sysops 2006 - 2023

CONTACT US

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

Sending

Log in with your credentials

or    

Forgot your details?

Create Account