This question comes up quite often: “How can I encourage adoption of Windows PowerShell in my organization?” I periodically poll people about their adoption plans and what sort of things are standing in the way. Most of the obstacles in my opinion can be cleared with experience, exposure and education. On Twitter today, @ChuckBoyceJr was asking for guidance in getting his organization to accept and presumably adopt Windows PowerShell. His concern was that their lack of scripting knowledge was a hurdle.
I don’t think this is a hurdle, or at least one you should worry about. The reason is that I think the better approach is to “sell” PowerShell as a management tool, not a scripting tool. When people hear “scripting’ they think it will be some combination of “it’s complicated”, “it’s prone to security vulnerabilities”,and “it has little to no long term practical value”. I’m not about to fight that battle here and neither should you.
Instead, stress that PowerShell is an interactive management console. You type a command and something happens. You can manage local and remote computers. You can manage 100 remote computers as easily as you can 1 or 10. Granted, some PowerShell expressions can get a little long, but they work and can accomplish some amazing tasks that often would be next to impossible with a graphical tool. But if your co-workers want graphical management tools, you can give it to them but still use PowerShell. You can create your own using Windows Forms. Or grab a copy of PowerGUI. Finally, stress that fact that Microsoft has adopted Windows PowerShell as it’s de facto management tool going forward. It’s not a matter of if you will be using PowerShell, only a matter of when.
Here’s what I would do. First, gain some experience and proficiency in PowerShell yourself. Then identify a common management task you do now, perhaps through a GUI or some other tool. Write a one or two line PowerShell expression to accomplish it. Don’t write a script. Save that for later for the truly complex tasks. Or if you use another scripting language, such as VBSCript, take one of your management scripts and write a short set of PowerShell expressions that you can run interactively to get the same result. Your goal is to show how much you can accomplish of your daily work with PowerShell and how much more efficient you can be.
At the very least, demonstrate some of the basic management cmdlets such as showing all running services on a group of servers, finding the last 10 error messages in the system log, or getting basic WMI information from a group of servers and present it in a nicely formatted table. Feel free to use any scripts or tools here to help close the deal.
For the rest of you who have been successful in promoting PowerShell, what obstacles did you overcome and how? Do you have a killer PowerShell one-liner (or 2-3 lines) that has a big “wow” factor for management types? I’ll have to come up with some of my own but in the meantime I hope you’ll share.