- New Group Policy settings in Windows 11 23H2 - Mon, Nov 20 2023
- Windows Server 2025 will support SMB over QUIC in all editions - Fri, Nov 17 2023
- Switch between Windows Terminal and the legacy console - Thu, Nov 16 2023
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.
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.
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.
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.
Excellent one Wolfgang!
If your post hadn’t already been on 4SysOps I would have published the link in the News section 😀
Thanks, Luc 🙂
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
“Microsoft will no longer develop Windows PowerShell, which today is included in Windows 10 and Windows 2016″
That should be Server 2016.
Well spotted. 🙂 I changed the text now. Thanks for the hint!
Why has Microsoft made Poweshell such a push in MCSA Certs when they were planning to reduce its content?
Cad Man: reduce it as in making it available on all platforms?
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.
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.
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.