Microsoft Brings PowerShell Core to Windows, macOS, and Linux

Posted on January 11, 2018 by Paul Thurrott in Windows 10 with 20 Comments

Microsoft announced this week that it has made the initial release of PowerShell Core available on Windows, macOS, and Linux. Confusingly, this first release is called PowerShell 6.0.

“This is the biggest and most important change we’ve ever made to PowerShell!” Microsoft Technical Fellow and PowerShell creator Jeffrey Snover tweeted.

Put simply, PowerShell Core is a new, cross-platform version of PowerShell that is built on .NET Core instead of the .NET Framework. So with this release, there are now two PowerShell editions: The classic Windows PowerShell, formerly codenamed Monad, that we’ve been using on Windows for the past decade and PowerShell Core.

From a functional perspective, Windows PowerShell is still more powerful, in that it can take advantage of a bigger and more set of .NET capabilities that are exposed by the .NET Framework and .NET Standard. PowerShell Core relies on the newer, cleaner, but less capable .NET Core runtime, which limits its functionality to what’s available today in .NET Core and .NET Standard.

But the advantage to PowerShell Core—like .NET Core—is that it’s cross-platform compatible. So any scripts that you write for PowerShell Core will work across Windows, macOS, and various newer Linux distributions, like Ubuntu, Debian, Red Hat Enterprise, and others. There are also experimental versions available for both Windows 10 on ARM and Raspian, the Raspberry Pi-based system.

And on that note, PowerShell Core is the modern successor to Windows PowerShell. That prior Windows-only release ends at version 5.1, which explains why PowerShell Core starts at version 6.0.

“There are currently no plans to introduce new functionality to Windows PowerShell,” Microsoft’s Joey Aiello writes. “You can count on it as a stable platform for your existing workloads.”

Microsoft also explains which Windows PowerShell features are missing in PowerShell Core.

“As part of the move to .NET Core and other operating systems, we were forced to leave behind some technologies that were being used by Windows PowerShell,” Aiello explains. “In other cases, we took the opportunity of PowerShell being refactored to stop supporting lesser used technologies. Some of these technologies may eventually return to PowerShell Core, but many will not.”

PowerShell Workflows, PowerShell Snap-ins, Windows Management Instrumentation (WMI) 1.0 cmdlets, and support for Desired State Configuration (DSC) resource execution are among the missing in action in PowerShell Core 6.0, Microsoft says.

Download PowerShell Core for Windows or for macOS or Linux.

 

Tagged with , , ,

Join the discussion!

BECOME A THURROTT MEMBER:

Don't have a login but want to join the conversation? Become a Thurrott Premium or Basic User to participate

Register
Comments (23)

23 responses to “Microsoft Brings PowerShell Core to Windows, macOS, and Linux”

  1. hrlngrv

    Minize attack service or Minimize attack surface, or is it not OK for any MSFT employee to use Surface with any negative connotations?

  2. chrisrut

    I think this is rather a big deal. Supports the notion that Microsoft's services are available everywhere, by making the tools needed to manage things like Azure and O365 available on every platform. Very smart.

    Unless they left out the features to manage Azure and O365 :-)

  3. Tony Barrett

    I just don't think there's a lot of .NET development going on in Windows now. While MS want devs to use UWP, that's not really going anywhere fast either. It seems to be web/PWA where the future will lie. I'm also just not sure what MS are trying to do with PowerShell these days. Powershell on Linux? Really? Can't see this getting anywhere against bash. Makes you wonder what MS are smoking.

  4. skane2600

    “There are currently no plans to introduce new functionality to Windows PowerShell,”


    So once again MS doesn't want improve tools for their primary developer base to chase a new market of developers who interest is a dubious speculation. Because that strategy worked for them so well in the past?

    • Jeremy Petzold

      In reply to skane2600:

      I think you should pay attention to the writing on the wall.....MS is trying to factor out as much Windows specific integration points from its technologies because it knows the future is that Windows will likely not be an end point OS in the next 15-20 years.

      • skane2600

        In reply to Jeremy_Petzold:

        15 years is an eternity in tech. Besides, what's Microsoft's business case for .NET core on non-Windows platforms? Where's the revenue stream? Historically MS has never used their non-native tools to build any of their major applications. Not VB, not MFC, not .NET and so far, not UWP. Why would Linux devs who mostly hate Windows and Microsoft, embrace it?


        I think MS' previous business oriented strategy has been replaced with a kind of "Let's do what all the cool kids are doing" approach. Unfortunately the "cool kids" don't really want to play with Microsoft.

  5. mrdrwest

    Loaded the RC in WSL in November 2017. Works. Need to make time to do more experimenting.


    PowerShell om Linux. Things are a changing!


    Loading on W10 shortly.


    Tip: pwsh launches a PoSh Core 6.0 session.

  6. mrdrwest

    Loaded the RC in WSL in November 2017. Works. Need to make time to do more experimenting.

    PowerShell om Linux. Things are a changing!

    Loading on W10 shortly.

    Tip: pwsh launches a PoSh Core 6.0 session.

Leave a Reply