DON'T Start Learning PowerShell?!?!?

Jason Helmick and I were recently up in Redmond recording a Microsoft Virtual Academy series entitled, "Building Your Datacenter One DSC Resource at a Time." While we were there, we decided to film a tongue-in-cheek promo for the series that started with the premise that, "if you haven't already learned PowerShell, you missed the bus." Obviously, there's a bit more to the story.

First, watch the video at …

Second, notice that we specifically encourage people to learn DSC. Hmm... are there any pre-requisite technologies for learning DSC?

Maybe, learning PowerShell <grin>?

We were really speaking to the folks who've been procrastinating on PowerShell for the past half-decade or more, because we really do believe that DSC is a great, and often easier, way to actually learn PowerShell. Sometimes, PowerShell is tough to get into simply because you don't have a task to tackle. DSC gives you one - a practical application of PowerShell that lets you dive in from a different angle.

Obviously, we think learning PowerShell is important, or we wouldn't have built our careers around the technologyBut we know it can be tough to get started in - and every year that passes makes it harder to get started, as new features are added. But DSC represents a bit of a fresh start, and an opportunity to get into PowerShell on the ground floor, from a somewhat different direction.

Some folks got really ticked when we basically said, "if you haven't started learning PowerShell by now, then it's too late," but seemed to miss the massive encouragement we gave for learning DSC. 

And no, we don't really think that it's too late to start in PowerShell if you haven't, already. I'm forever reminding people that there's this thing called a "birth rate" in the world, which means there'll always be new people coming into the industry and starting from scratch. I've spent a massive amount of effort producing materials to help those newcomers, and I certainly don't think that "entry level" just stopped in 2015!

But... if you've been putting it off, maybe take a new look at PowerShell from the DSC perspective. It's different, I promise - and it's not at all like programming as you get started. It's a neat way to leverage, and kind of abstract, the massive investment that's been made in PowerShell since 2006, and might be just the thing to win you over to the Shell Side.

About the Author

Don Jones

Profile photo of Don Jones

Don Jones is a Windows PowerShell MVP, author of several Windows PowerShell books (and other IT books), Co-founder and President/CEO of, PowerShell columnist for Microsoft TechNet Magazine, PowerShell educator, and designer/author of several Windows PowerShell courses (including Microsoft's). Power to the shell!


  1. Don,

    I am with you. I finally started to buckle down and learn. I got Server Core 2012 R2 and did everything from PS. Its been great as I am looking into starting to create some scripts to help me in certain areas. This leads to my thoughts.

    I watched your video and totally agree with you that we need to learn it and hop on the trailer as you put it. Here is my frustration. I am a small shop. I have a total of four Server 2012 R2. They are using limited features and really just need to be maintained in logs and updates. Now, I can totally understand DSC for my clients but is that portion ready? All if the documentation is for server side from what I can find. I would love the clients (windows 7 and soon to be Windows 10) to be able to check on software version or updates. Making sure everything is consistent on all of our devices, the default items. I know Powershell is growing and it will keep on adding more functions but while I want to learn DSC, what benefits are there for small shops? I am not creating new VM's every week for production. If I am missing the overall point, please help me. I am looking forward to the training that you just shot for.

    • DSC is "ready," yes. Clients aren't it's major use case right now but that's already evolving. But I'm confused. Are you asking if it's applicable to your career or to your current job only? Do you only learn things applicable to this one job? That seems career limiting. You see, I feel that if you were already exploring it, you'd know if it was applicable to your job and where it might need to evolve to be useful to your job. If you wait until someone tells you "it's ready," you'll have a much bigger hill to climb and you'll be learning in a hurry. Why not get in on the ground floor?

      And the thing with DSC is that you are the one who can expand it to do whatever you need. If you're waiting on microsoft to provide the exact functions you need, then you've indeed missed a memo. The point of DSC was to give us something we could expand ourselves. Unlike GPO.

      Me, I love learning about technology for its own sake. That ends up making me more useful than someone who learns just what they need for today's job, and it future proofs my career. I guess it depends on your goals.

  2. Don,

    I agree with what you that I should learn it but I guess what I am asking is, is this more for large scale environments? Will I learn it now, sure. But what I am looking at is, how will it help a small scale environment where server changes are at is minimal? As I said before, client side, I can totally see and can use now. From what I am seeing, a lot of the functions are for server side. Am I wrong? How would you go about and look for the client side of DSC? Does the help cmdlet cover client side if I start looking and digging through the help section?

    Your right, I don't want to be left behind professionally and in skill set. I look forward to your video so that I can start looking in how I can utilize it both in a test environment but also in production.

    Thanks Don.

    • No, it isn't only for large environments. It's for anyone who wants their node configuration to be automatically applied and maintained. Trust me, people asked the same question about AD in 2000, because at THAT TIME, it was the big companies jumping into it. I bet your small environment uses AD though.

      What you're seeing is that A LOT OF THE RESOURCES MICROSOFT HAS BUILT are for server workloads. Yes. That's because that's what Microsoft themselves need. But the entire point of DSC is that ANYONE can build resources for it. So if you have client-side needs, you can build resources to meet those needs. This isn't about just what Microsoft provides - the point of it is that you can provide for yourself, for once. Anything you can do with a PowerShell command, an executable, or a script, can be automated by DSC. So you're going to need a solid foundation in PowerShell, too.

      And PowerShell's Help doesn't provide much on DSC, because DSC isn't a set of commands. If you take the time to learn DSC, you'll understand that it isn't actually so complex that you NEED a bunch of help files for it. Resources all work the same way, so once you learn one ("The DSC Book" has plenty of examples), you know how they all work. Like driving a car - you didn't take a special class in Toyota, but I bet you can drive one.

      And understand that the videos I just filmed aren't the "basics" in DSC. Those basics have been in the MVA library for months. And there's plenty of other education out there - Pluralsight, free books on, plenty. It's been there for months, too.

      But for ANYONE reading this, understand that part and parcel of DSC is building your own resources to meet your specific needs. If you're not up or that, then you're not going to "do" DSC. The days when Microsoft gave us everything we need are past - DevOps is about Microsoft giving us the tools to build our own houses.