Barney's Blog

Blog archive

Q&A with Don Jones: Why Care About PowerShell?

You probably know Don from his Redmond magazine column, his blog here on or have seen him speak at our TechMentor conference. And if you know Don, you know he's passionate about PowerShell. I recently got the chance to ask him a bit more about why he feels so strongly that PowerShell is a must-have skill for Windows IT pros.

Q: Why should IT care about Windows PowerShell?
A:Two reasons. First, we're increasingly moving toward an era where we don't physically touch our servers. They're hosted by someone else, or perhaps in our own remote datacenter; Windows PowerShell provides a more effective and consistent means of administering servers in a variety of scenarios. Second, businesses should be getting fed up with manual effort when it comes to administration. They should be demanding that anything done more than once be automated. That was always near-impossible to pull off in the Microsoft world, but Windows PowerShell is making it possible now. Frankly, IT pros who don't embrace Windows PowerShell are putting their jobs at risk, because their decision makers are going to figure this out eventually. “What do you mean, you're still using a wizard to do that? You do it 10 times a day! What a waste of time! You're fired!”

Q: Can you explain how you use Windows PowerShell without programming or scripting?
A: Windows PowerShell isn't a “scripting language.” Not like VBScript was. Calling it a scripting language annoys me, because those words turn off a huge number of admins who simply didn't sign up to be programmers. Windows PowerShell is a shell. You run commands. If you can run “ping,” you can use Windows PowerShell. Yes, it does have a scripting language within it, but that isn't the first thing you have to learn. You may not ever need to learn it! Windows PowerShell, unlike VBScript, actually has a very shallow glide path: You can start small and learn in small increments as you need more capability. So don't be put off because you've heard Windows PowerShell is like programming. That's not necessarily true—although some people do choose to approach it that way.

Q: How do I know, as an IT person, if I need to program or script or if I can use Windows PowerShell at a higher level?
A: You'll know because you'll run into a need. As you start to use Windows PowerShell, it almost becomes obvious. “OK, I know how to do A by running a few commands, but now I need to add another command that should only be run under B circumstances.” Well, you've identified a need to add some logical decision-making. So you explore a bit and learn how to use the If construct. Are you scripting now? Maybe. It's a bit of splitting hairs and applying labels to things. The point is to just focus on getting the job done. Windows PowerShell itself has the tools you need to teach yourself what you need to get today's job done, and there's no need to learn more than that. One of the main things I teach is how to teach yourself the shell, so that you don't need to learn anything more than what's needed for the job at hand.

Q: What are people who don't use Windows PowerShell missing?
A: Two things. First, quality of life. I mean, seriously, who wants to be clicking next-next-finish all the time? Automate that stuff and free up some time for interesting work. Second, career opportunity. Believe me, Windows PowerShell expertise is going to matter a lot more than an MCSE or whatever, and that day is only a scant number of years away—maybe three, maybe four. If you start now, you'll be a Windows PowerShell guru in three to four years, but you sure don't want to wait until then to start learning. Unless you also enjoy saying, “Would you like fries with that?”

Q:You're one of the people fostering the GUI versus command-line debate. Is there a winner?
A: Yes: They both win. Windows PowerShell doesn't eliminate the GUI—it provides you with a choice. Is there some task you only do rarely, like maybe adding a new site to Active Directory? Use the GUI. GUIs make it easier to perform unfamiliar tasks. Something you do every day, like adding new users, or something you need to do in bulk, like updating access control lists on a bunch of files? Use Windows PowerShell. We invented computers to do the repetitive, boring stuff for us, right? So let them do it, via Windows PowerShell.

Want to learn more? Don will be leading several PowerShell workshops at our Techmentor 2012 conference, being held at Microsoft HQ in August.

Posted by Doug Barney on 07/03/2012 at 1:19 PM


comments powered by Disqus

Subscribe on YouTube