Microsoft Open Sources PowerShell, Releases Linux and Mac Versions

Microsoft today announced that PowerShell has entered the open source community and versions for both Linux and Mac are now available.

The long-awaited move, which promises to broaden the use of Microsoft's popular command-line shell and scripting language that lets IT pros build task-based scripts to provide more automation to the Windows operating system, is consistent with Microsoft CEO Satya Nadella's embrace of the open source community two years ago when he proclaimed "Microsoft Loves Linux."

Among many initiatives that have followed, Microsoft announced plans to open source its once-proprietary .NET Framework. Given the fact that PowerShell is built on the .NET Framework, it made sense that it was potentially in the open source pipeline as well. Alluding to that possibility back in April was Microsoft Technical Fellow Jeffrey Snover, who is known as the inventor of PowerShell, and has long evangelized its use for its ability to automate tasks with more modern releases supporting Desired State Configuration (DSC is the PowerShell push-pull method for keeping system configurations in check) and more recently the use management APIs to enable cross-platform automation and configuration management using PowerShell.

Snover gave a nod to the possibility at the Build Conference in San Francisco, as reported by Kurt Mackie. During a Build session discussing DevOps and Microsoft's forthcoming Windows Server 2016 Nano Edition, an attendee asked about Microsoft's intentions regarding a port of PowerShell to Linux. In response, Snover acknowledged "significant interest" in PowerShell on Linux. In a nod and wink, he recalled that the onetime key barrier -- that PowerShell is written in .NET code (C#) -- was no longer a barrier, now that the .NET Core was contributed to the open source community.

"Jeffrey Snover predicted internally in 2014 that PowerShell would eventually be open sourced but it was the advent of .NET Core and getting .NET Core working on multiple Linux distros that kick-started the process," said Scott Hanselman, Microsoft's highly visible program manager focused on the bridging of the .NET, ASP.NET and open source communities, in a blog post. "If you were paying attention it's possible you could have predicted this move yourself. Parts of PowerShell have been showing up as open source DSC Resources, Script Analyzer, Editor Services, PowerShell Documentation, and the PowerShell Gallery.

Indeed, it was Snover who delivered today's announcement and the celebration of release was captured on the PowerShell and DSC team's YouTube channel. "PowerShell on Linux is now designed to enable customers to use the same tools, and the same people, to manage everything from anywhere," Snover said. The initial ports are available on Ubuntu, Centos and Red Hat, he noted. "PowerShell also now runs on Red Hat Linux and Mac OS X with additional platforms planned for the future. The "alpha" builds and source code are now on GitHub, he noted.

"Now, users across Windows and Linux, current and new PowerShell users, even application developers can experience a rich interactive scripting language as well as a heterogeneous automation and configuration management that works well with your existing tools," Snover added. "Your PowerShell skills are now even more marketable, and your Windows and Linux teams, who may have had to work separately, can now work together more easily."

The open sourcing of PowerShell promises to give the popular scripting language a broader reach and potentially greater popularity. "Today's news about open sourcing PowerShell and making it available on Linux stands as a testimony to Microsoft's new era of openness and broad ecosystem extensibility," said Greg Shields, a longtime Microsoft MVP, author-evangelist at Pluralsight and Redmond's former "Windows Insider" columnist (and a cochair of the TechMentor conferences, which, like Redmond ,are produced by 1105 Media). "More culturally, though, I'm just personally excited at how Microsoft has become 'a cool company' to work with. Today's news reinforces that emotion."

PowerShell has already found a home in the open source community, especially where it applies to DevOps where players such as Chef and Puppet have already begun supporting it. Snover, who had a high-profile presence at last year's ChefCon conference, has emphasized PowerShell's potential to run in containerized environments such as the Chef Server. Don Jones, also a former Redmond columnist, a curriculum director at Pluralsight and TechMentor cochair, said today's move is poised to extend its reach.

"Microsoft has not only made PowerShell open source and available for Linux and Mac OS, but has taken care to integrate with the existing shell experience on those operating systems," said Jones, who also cofounded the PowerShell.org site and has authored numerous technical books about PowerShell. "Running 'ps' won't run some PowerShell command you don't know; it runs 'ps', and lets you integrate that command's output into a pipeline that can also include PowerShell commands. It's a polar opposite of the 2000s-era "embrace and extend" motto at Microsoft.'

Jones said the move also validates that Microsoft's believes the Windows shell has value across operating systems but at the same time is a tacit acknowledgment that it needn't be the only scripting environment. "Along with the upcoming extension of PowerShell Remoting to support SSH as a native transport protocol in addition to WS-MAN, Microsoft is really acknowledging the reality of the modern datacenter," he said. "They're also willing to compete on the value of their products, not a single-stack lock-in -- and that's not the Microsoft we know, but it's one we can come to love, I think."

Snover will be giving a talk tonight about the news (Aug. 18) on PowerShell.org's Scripting Live podcast.