PowerShell for Linux makes it easier to mix clients, servers and clouds

Mary Branscombe |
Aug. 19, 2016

Multiple platforms are now the norm for IT infrastructure. To address that Microsoft is bringing its key configuration tools to Linux and Mac OS to make it easier for customers and partners to handle their workloads, which also positions Operations Management Suite as the future of configuration management.

That been somewhat polarizing for customers, says VMware product manager Alan Renouf. “For a long time now our customers have had a love-hate relationship with PowerShell. Customers love the fact we have all these commandlets that work against their environment and automate their infrastructure end-to-end. But our Mac and Linux customers have not been feeling the love; they're not able to use this, because it's been a Windows technology till now.” Renouf believes customers will welcome the server support, and the ability to do everything from a single machine. “It doesn’t matter where you write a script, you can run it anywhere now. I can write it on my Mac and run it in Linux using Docker to deploy all my virtual machines.”

AWS is another launch partner for PowerShell for Linux, porting its existing PowerShell commandlets. “Guess what? A bunch of our customers run workloads on AWS and AWS is a very active PowerShell community,” explains Snover, adding “and now Google has just announced that they've got a PowerShell project.”

Early days of PowerShell

Microsoft has been slowly bringing pieces of PowerShell to Linux for a while. Desired State Configuration for Linux and the promise of SSH support arrived in 2014 (several months before Microsoft open sourced .NET and brought .NET Core to Linux). The difference, Snover points out, is that “you had to author your scripts on the Windows platform, you had to configure things on the Windows platform and then deliver the desired configuration to a Linux box and have it be configured; now you can do all of that on Linux.”

Last year Microsoft also announced it would be supporting OpenSSH — a commitment PowerShell for Linux will deliver. “Our team is taking OpenSSH and porting both the client and server to Windows,” Snover explained. “This isn’t some arms’ length integration. We’re integrating it into the heart of PowerShell; it will be a native transport for the PowerShell remoting protocol. Customers will be able to choose; when I go to these machines, I want to talk to them over WinRM, when I go to these machines go over OpenSSH.”

PowerShell for Linux isn’t exactly the same as PowerShell for Windows, although the source code is available for both. the Linux port. There are obvious differences, like adding case sensitivity for Linux. “There’s also a whole set of commandlets that don’t make sense in the context of Linux, like event logs, so we removed those. Over time we’ll product more native Linux commandlets to support the Linux equivalents,” he explained.

The PowerShell code that’s available on GitHub is an alpha version, Snover says. “We’re in learning mode and we’re approaching this with both a great deal of confidence in our technology but also humbleness, learning what the Linux community needs and having them help us prioritize our backlog. We want people to be in no doubt that Linux will be a first-class system and we’ll be releasing PowerShell updates on both platforms simultaneously.”