No doubt you have been hearing about PowerShell, Microsoft's very powerful, object-oriented scripting language and command-line toolset, a lot lately. PowerShell 4.0 is brand new and its role has been expanded.
Over the past few years, Microsoft has made PowerShell a first class citizen on Windows Server and the preferred way to manage both the operating system and many of its server products. In fact, tools like the Exchange Management Console, the System Center GUI tools, and more are simply graphical front ends to PowerShell script cmdlets. These are generated in the background as you move through the various wizards and screens and executed when you click Finish on the task at hand. PowerShell, put simply, is the future of Windows administration.
And really, the value and appeal of PowerShell is fundamentally about automation. It allows computers to handle the rote work that they are capable of handling, freeing up IT staff to actually create business value. What looks better on a report to your executive committee: that you spent 67 hours last month patching your servers, or you spent 60 hours creating a new customer portal that lets you serve a new market quickly and efficiently? Oh, and that patching still got done, just through automation. You be the judge.
There are many reasons why automating with PowerShell is important, but here are three very important ones:
Automation achieves consistency
Have you ever attempted to deploy more than two or three servers at a time by hand, especially if you are adding workloads like a mail or web server to the base operating system? You either have to keep detailed notes to remember what your settings choices were on one machine so that you can duplicate them on the other machines, or (more likely) you just clicked through and tried to remember your choices.
This results in configuration drift, with a bunch of servers doing similar things but configured differently, and is a recipe for problems. By using PowerShell to do your OS and server configuration, you're ensuring that your script configures each target machine identically, with no differences in setup or operation.
Automation makes smarter use of resources
As an IT professional, you are paid way too much to click through wizards on fifteen different servers. You have skills and knowledge that can be applied in much more useful ways, like solving business challenges, developing new services, and reducing waste. PowerShell allows you to make more intelligent use of your own resources and staff by automating a lot of the systems administration, configuration, and monitoring tasks you used to do by hand. This frees you up to add value where it counts.
PowerShell is quickly becoming the preferred management method in the Microsoft ecosystem.
PowerShell is the only way to get some tasks done. For example, I recently learned that only 65 percent of the functionality of SharePoint 2013 is exposed within the graphical management tools. The remaining third is only configurable via PowerShell cmdlets. Not knowing or learning PowerShell can now actively hinder your ability to properly manage deployments.
For all of these reasons and more, PowerShell is very important and should absolutely be on your list of technologies to learn and become familiar with.