Published: Nov 28, 2011
Jeffrey Snover is the Inventor and Architect of Windows PowerShell and currently the Lead Architect for Windows Server 2012. If you’ve been following Windows Server 2012 developments you’ve probably heard that PowerShell will be one of the core management engines of the new OS. With PowerShell v3 the number of cmdlets has grown from just 300 in Server 2008 R2 to over 2,300 and counting in Windows Server 2012.
When I spoke with Jeffrey earlier this year, he hinted at the importance of PowerShell in Windows Server 2012. He also told me how important it will be for IT Professionals to know and understand PowerShell; important to their careers that is.
If you’ve been putting off learning PowerShell, check out this video interview (or the transcription of the video below) and see why now is the time to start learning PowerShell. If you’re interested in learning more about the developments in Windows Server 2012, take a look at Sean Deuby’s article Windows Server 8: A Leap Ahead.
Jeffrey Snover: When I came to Microsoft, I knew that we needed an automation story. I had asked people about that and they said, “Oh, we have one.” I said, “Well, what is it?” They’d say, “Well, it’s VB Script.” I said, “Oh, my friend. You do not understand what we need.”
I tried a number of things to try and get it going. Eventually what ended up having to happen was I locked myself in a room, spent a few months, prototyped what I thought we could do, and then sold it to people. At the time people looked at me like, “Oh, you’re crazy.” They looked at me like I had a rat’s tail coming out of my mouth. One guy said, “Which part of Windows confuses you?” Then they’d say things like, “Well, admins don’t want command lines. Admins want GUIs. I’d say, “Well, what job did you have before you came to Microsoft?” They said, “Well, I came here from college.” I said, “Yeah, I know that.” You’re clearly just disconnected from reality.
I built this and tried to influence a group to do it, and honestly they didn’t quite get it. That’s why I explained the concepts to them; they didn’t quite get it. I went and did the prototype, showed it to them, and they sort of got it. But I realized at that point I had produced this fantastic thing, and I wanted to go pursue it. I had been the lead architect for all the management technologies and products. In fact I ended up having to take a demotion to go work on this small little project that nobody cared about, but I knew it was important. I’d said, “You know what? It’s worth it.” Eventually, it became PowerShell, and it succeeded. I got my position back and a couple more.
Question: How has PowerShell evolved over the years?
Jeffrey Snover: You know, honestly, in the very beginning, I wrote what’s called the Monad Manifesto where I laid out the problem, our approach to that problem, and then what we were going to do. And step by step we’ve just implemented it. If you pull out that document now, it was written in 2002, you’d just be shocked at how what we’ve delivered relates back to that original vision.
It’s an object-based model where objects simplified things rather than complicated things. We’ve done the remoting, and now we’re layering all the GUIs on top of PowerShell. Anything you can do in a GUI you can also type. Because you can type it you can automate it.
You can have it perform the operation while you’re out playing with your kids or sleeping. Sleeping’s really important to me. You could just have this thing, “Oh, when something happens, run this. Don’t call me and have me come in and click a button.” What the heck is that. Or run it on 10,000 machines, right? This idea of click, click, click on 10,000 machines is just insane.
My favorite story is they say, “Oh, well, no one in their right mind would go do these big, massive changes to their production Active Directory. You’ve got to do those in your test Active Directory environment first.” I said, “OK, that makes sense, but then what do you do?” The answer is, oh, now having done that, make sure it works, then go reproduce those 5,000 mouse clicks in the same order, without error on your production environment or you’re doomed. It’s like, well, what a crummy world that is. No, no, no. You run the scripts; you write scripts, and you test them out. Test them; oh, they don’t work? Change it. Test it; it works. OK, then you just apply it.
The other thing is say something goes wrong. Well, what went wrong? Well, with the GUI there’s no slime trail. We’re in the Pacific Northwest, so we have these slugs. You see the slug, and you just follow the slime trail and you can see where it came from, right? Well, with the GUI you have no slime trail. But with the command line interface you type something, and you see the results. You type something. You see the results.
If something’s not quite right you can go back with the scroll bar to see, well, what happened? It’s like, “Oh, that’s what that error message meant,” right? When you say OK with an error message on a GUI, it’s gone. With a command line it’s not. Anyway, it’s come out the way we expected.
Question: How can IT Professionals get started with PowerShell?
Jeffrey Snover: The key thing is to just get involved, right? Just don’t be intimidated. It’s super, super important to do this. It’s super important to your career. I just worry about those folks who look at it, get intimidated, and then don’t push pass the intimidation and pick it up. Those folks might not do as well as those folks who do.
Get started with PowerShell with [this_link_has_been_removed]
Let me give you a concrete example. Last year at TechEd on Bourbon Street this drunk admin comes up to me and says, “Oh, thank you, thank you, thank you.” I said, “Oh, thank you for what?” He says, “I’ve been an admin for a long time.” He says, “My career had kind of stalled out. It topped out, and last year my boss said, ‘You’ve got to learn PowerShell.’ I said, ‘No way. No way. I don’t want to learn PowerShell. I’m a GUI guy.'”
His boss said, “I don’t care. That’s the job. You’ve got to learn it.” He said. “Argh!” He says, “A week later, I pushed through it. I got some training.” He says, “A week later I was having a blast. You produced something that’s just so much fun.” He says, “I’ve been using it for a while now, and this year it’s time for my annual review. I knew what he was going to say. I was going to get another one percent raise, maybe two percent.
“I grabbed the paper and I say, ‘Thank you very much.’ My boss says, ‘Stop, stop, stop! Read it.’ So I stopped and I read the document, and I got a 17 percent raise. In this economy I got a 17 percent raise.” His boss said, “You know, Joe. Ever since you learned PowerShell, you’ve been so productive. You’ve just been kicking it, just hitting a home run. Thank you so much. You’re so valuable.”
Now I just love that story because for me that’s success. This guy was very successful. Now the flip part of that is, if there was somebody who was his peer who decided not to learn PowerShell, well, guess where the promotion budget goes to. Guess where the bonus budget goes to.
See Also: Interview with PowerShell MVP Jeff Hicks
At the end of the day you get paid for the value you produce. At the end of the day, there’s only so much value you can produce click, click, clicking. What? You’re smarter so you can click faster? Right? Does it click? But if you can learn how to automate things, you can provide more and more value and get paid appropriately.
There are folks who are successful with PowerShell, and there are folks who have been unsuccessful with PowerShell. The folks who are unsuccessful with PowerShell are those folks who just sit there and sit in their room and try and muscle through it by themselves.
Some of those are successful as well. But those who are unsuccessful are typically doing that approach. The folks who are successful all look very similar. They are folks who reach out. This is like Tolstoy; Tolstoy once said, “All happy families are the same. Each unhappy family is unhappy in their own unique way.” Well, the successful people are all successful for reasons, right? They go out and they reach out. They reach out to the community, they go get training.
They don’t assume that they’re going to know it, or that the first time they encounter something scary they just run away. They push through it with the help that they need. They’re getting books, asking the community, going to conferences, getting training. That’s what it takes to be successful with PowerShell. You’ve just got to dedicate your time to it.
Question: How does PowerShell help IT professionals understand their systems?
Jeffrey Snover: PowerShell allows you to see beyond the surface of the system and get at the true details and manipulate those, and it’s through our reflection-based stuff. When you run a command, we show you essentially a report, but then you can drill in and find out some more details. Look for the patterns; take these things, file them off to a file, keep logs. Put it in an Excel spreadsheet, analyze the data. Really understand your system.
Master PowerShell with [this_link_has_been_removed]
Do you want to hear a funny story? Do we have time for this? OK. So here’s the story.
When my brother was a little kid he slipped in the tub, fell, hurt his arm. My folks touch his arm. He screams, “I broke my arm!” They weren’t sure about that, but every time they touched him he screamed. They take him to the doctor, they go take all these x-rays, and the doctor doesn’t see anything. But every time he touches the kid’s arm, he screams. Then he thought, “Well, geez. Maybe we got the x-rays wrong.” So they go and they take it at a different angle, take a bunch of x-rays.
Doc is looking, he says, “Geez, I don’t see anything. But Steven, how high can you lift your arm?” He says, “Only that high.” He says, “No, that’s not good. That’s not good. Before you hurt your arm how high could you lift it?” He says, “Well, all the way up here!”
The point of that is that, well, what’s an error condition? An error condition is a deviation from a good condition. System admins really need to understand the good condition of their systems, not just people aren’t calling me. But what does it look like? How much memory’s getting consumed? How many handles are there? If I run it on multiple machines, what does the traffic look like?
Then when something goes wrong, they look at something and they see a handle count: 5,000. Well, is that high or low? “I don’t know, I never looked at it when it was working.” No, look at it when it’s working so that you know in general it’s around 5,000. Then if you see it around 20,000 you say, “Oh, well, that doesn’t look right.” That’s what PowerShell does, is it makes it easy to investigate and understand the patterns of your system.
Question: Tell us about your new role at Microsoft
Jeffrey Snover: Yeah, now I have a new role. I’m the lead architect for Windows Server. Yeah, a little scary, a little exciting, but clearly demonstrates obviously, the importance of PowerShell. What they said was, “Hey, going forward what’s important is focus in on IT.” Obviously, they didn’t take somebody who’s the Core Kernel guy and put him in that position. People you put in the top positions kind of tell you. I like to say it’s like gymnastics, right? The body follows the head.
You’ll see a lot more done in this space, a lot more focus in on the needs of IT pros. All the stuff we used to do before we’re going to do. We’re going to do better. All that continues forward, but just see an increased focus on the needs of IT pros.
Question: What’s next for you?
Jeffrey Snover: I’m now doing a number of keynotes. We just this year had the first PowerShell Deep Dive Conference. Oh, boy, was that exciting!
Yeah, we tried to keep it very, very small. We brought some of the top technical people in the world together to just sit together and just geek out. It was so much fun. “Hey, try this.” “Oh, I didn’t know that. Try that.” I’m learning stuff. I’m teaching them my secrets. They’re teaching me their secrets. It was a blast. Now there’s some conversation about, “Geez, how do we do this again next year? Can we get one going in Europe. Cross your fingers. I’m hoping that will happen.