To the time and resource challenged system administrators out there with a large number of remote servers and/or workstations to manage, I make a humble suggestion: Learn how to use Windows PowerShell. PowerShell is Microsoft’s shockingly user-friendly “command prompt on steroids.” Its uses are only limited by your patience and imagination. PowerShell scripts can automate processes, perform mass configuration of computers and applications across disparate domains, securely execute commands on remote systems, monitor your entire organization’s network infrastructure, end world hunger, and bring peace to the Middle East. I was even able to write a simple side scrolling video game with it!

I know what you’re thinking…
I’m already strapped for time. Why learn to use another tool?

Like the internet, PowerShell isn’t a fad, and isn’t going away. Most, if not all of the current versions of Microsoft’s system administration tools, operating systems, and programs support configuration through PowerShell. This trend is set to continue. Some Microsoft products expose more options and functionality in the shell than they do in their graphical user interfaces. PowerShell is practically a requirement for managing Office 365 and Windows Azure cloud. Besides, once you get started writing your own functions, you’ll quickly build up a library of them. You can reuse these functions later, resulting in a snowball effect. In short order, you’ll be able to snap together functions in countless possible configurations to suit your needs. You’ll also be able to walk away and PowerShell do the heavy lifting for you.

Well, we’re not a Microsoft shop, so I guess I don’t need PowerShell.

Hold on there friend! If your remote systems/devices support SNMP (which practically everything does), or are accessible via a remote shell, PowerShell can work with it. There are countless commercial and free modules that can be imported into PowerShell. Additionally, these modules extend its functionality. And they allow you to accomplish practically any system management task you can. So while it may seem like heresy to manage and monitor a Mac or *nix environment with a machine running Windows, it’s entirely possible.

How hard is it to learn?

Your mileage may vary. But with a very low level programming class under my belt, I went from never using an object oriented programming language, to writing scripts to monitor and log remote server uptime and UPS backup battery health in the span of a weekend. There are also tons of Googleable websites with example code so you don’t have to reinvent the wheel. There are a large online community of scripters to learn from, and a very helpful “Hey, Scripting Guy!” blog from Microsoft employees. The blog tackles common issues and requests from the community. The blog is located at blogs.technet.com/b/heyscriptingguy.

So the next time you find yourself in a lull between putting out fires, open a browser window, spin up PowerShell, and see what you can do with it! I think you’ll be glad you did.