6

Helping Admins Getting Started with PowerShell

Writing for me has always been a daunting and seemingly endless task, one filled with pain. This is not due to the typical ‘writer’s block’ as I am full of ideas (sometimes referred to as bullshit from my friends), but the labor of the language itself has always challenged me. My inability to spell, incomplete and not well-formed sentences, along with things that dangle, I believe they are called participles.

Recently, someone I respect highly told me to grow-up and learn these relatively simple concepts so that I could communicate my ideas better. Ideas that he admits may have some value to others. His kindness is appreciated, even when wrapped in his ‘snarky’ ways.

The reason I even mention my deficiency, and determination, to overcome my affliction, is that I suspect that many administrators feel similar about PowerShell. Put yourself in the position of a Windows Admin, one that has spent their entire career in the safety of clicking a set of rehearsed instructions. This admin, who’s entire livelihood hinges on learning the next new button sequence is suddenly thrust into using a new command line interface called PowerShell. Listening to Admins after they see PowerShell for the first time produces the typical list of phrases:

  • Command line?  Isn’t that a step backwards?
  • New special commands called cmdlets? Great.
  • I hate learning syntax, are you sure there is no graphical way?
  • Looks like programming, I don’t want to be a programmer.
  • Pipelines? I got into Windows because I didn’t want to be a UNIX admin!

These comments would be laughable to the PowerShell elite if it were not for the underlying reason for them. Talk to an Admin that is trying to get started using PowerShell and what you find is fear. Fear that this will be painful, that they will not be successful, fear that they will lose their job without it. Do you remember learning your first command line interface? Learning a command line interface for the first time is a daunting and seemingly endless task. A prompt, a blinking prompt, blinking in condemnation, blinking in expectation of your next typed command, a prompt that is very unforgiving of syntax mistakes; this is a hard to learn tool.

So, how do we get Admins over the fear and start working with PowerShell? As a community, take time from our litany of bit-twiddling ‘coding’ blogs, and illuminate how a single one-liner could produce similar results. Perhaps take the giant wealth of knowledge that this community has and focus it for just a few moments of building great solutions with one-liners and automation that an Admin can use on the job. Maybe even go so far as to remind new Admins that PowerShell is an interactive command line tool that has some scripting capabilities, and that you don’t need to become a programmer to be hugely successful in your career. Maybe we should even invite our UNIX brethren to join us, if for no other reason than to keep us honest about what the job of an administrator truly is and how PowerShell fits into the picture (OK, maybe I just went too far). 😉

If you’re an Admin reading this, understand that the community of early-adopters is brilliant, caring, and always willing to help. Understand that you do not need to learn to be a developer and much of what you see on the web is the passion that we have over an extremely flexible and powerful tool. If you’re just getting started, ignore all the ‘code’ and focus on these things:

  1. Use PowerShell anytime you would usually use a command prompt.  Use it for ping, ipconfig, dir, launching Notepad, whatever the case might be. By doing this, you will find that PowerShell is not a programming language, but an interactive tool.
  2. Learn to read and use the help system. Help, Get-Help, Man, they all do the same thing, they get you help. PowerShell has the most extensive and useful help system of any command line. Good people worked very hard on this. It will solve your problem, but you have got to learn how to understand what it provides. Always, always use the –Full option. If you see something you don’t understand in the help system, don’t wait. Find out what it means.
  3. Learn how the pipeline works. I mean really learn how it works and how cmdlets pass information down the pipeline. You must be a master at understanding how cmdlets hook-up. This will allow you to discover how a cmdlet works (even ones you have never used before) and to make one-liners to solve problems.

If you begin your PowerShell journey by only focus on these three things, then you will quickly be using PowerShell for real solutions in your job. You can add the programmatic ‘code’ stuff such as automation and toolmaking later as it’s needed.

Where do you learn this? I will recommend to you the same thing I recommend to my closest friends just starting out with PowerShell. I will offer two options based on how you like to learn things.

  1. A book called ‘Learn Windows PowerShell in a Month of Lunches’ by Don Jones. Don’t get any other books yet until you accomplish the above three goals. This book will achieve those. Here’s a hint on how to use his book. Do exactly what he says to ‘do’. Don’t just read it, have a PowerShell prompt open and do exactly what he says.
  2. Take a class that focuses on the above tasks, not on scripting. I’m pretty sure I know of one or two classes that will work. 😉

Before I return to my grammar lessons, a last note to Admins beginning with PowerShell —you can be successful with PowerShell. You have a community of the brightest and best people I have ever met. Join the community and ask questions.

Knowledge is PowerShell,

Jason

Filed in: Articles, Online Only Tags: ,

6 Responses to "Helping Admins Getting Started with PowerShell"

  1. Joel Reed says:

    Awesome Jason!

    • TheJasonHelmick says:

      Thanks Joel!  Good advice or bad?  

      • Joel Reed says:

        It’s excellent advice. You’re
        clearly the champion of the new to PowerShell admin (this echoed a lot of what
        you said during your interview for PowerScripting Podcast.) I think those who
        have been using PowerShell for a couple years should take a step back and
        reflect on the K.I.S.S (Keep It Simple Stupid) approach within PowerShell.

         

        I think PowerShell is
        nearing a critical mass. However for that to be successful the basics and the
        fundamentals have to be approachable for the new to PowerShell admins as well
        as other users. 

         

        Not that the programming
        “dark arts” aspects don’t have their place. That “bit-twiddling
        coding” should be packaged up into true cmdlets. If for example it adheres to
        the verb-noun naming, includes embedded help, respects the pipeline
        (takes objects, outputs objects), then all that experience gained on fundamentals
        (get-help and get-member) is identical and drop in compatible with what’s baked
        in.

         

        I’m a toolmaker, and
        I’ve extended PowerShell to meet more of my admin duties then just what
        Microsoft provides in the box. I think that’s the key, the fundamental is the Shell. Everything else is servicing the extending of that Shell. I think that is one of the subtly amazing differentiators of
        PowerShell and what has come before it. The idea that you can within the Shell string together
        cmdlets (“tools”) from many different toolmakers; Microsoft, VMware,
        PSCX, Fred from the DB team, and get those one liners. All accomplished without any of those
        “individuals” having to know about the others. But for that too work
        the basics have to be understood and adhered too.

         

        You have to start from
        the fundamentals that you are championing. It doesn’t matter whether we are a
        new to PowerShell admin, a programmer, or a “DevOps” type we all need
        to learn and re-learn those fundamentals. We can’t keep PowerShell moving
        forward, in technology or continued user acceptance if we don’t keep it simple.

        Thanks Jason.

        Joel. 

         

        • TheJasonHelmick says:

          I totally agree with you!  As a toolmaker, those ‘dark arts’ are very valuable, and the PowerShell community is very strong in helping with the code side.  I think your right in that PowerShell is hitting critical mass, and many admins just need to know how to use the tool at this point, and really understand that pipeline.  I think that many admins may never become toolmakers, but will happily be successful using what Microsoft and guys like you create for them.

          For me its a religion, but I keep reminding myself that most admins just want to go home.  So, I too like the K.I.S.S. method for them.

          Take care and see ya at the next AZPOSH meeting!  Happy New Year!

  2. Notthatimportant says:

    I’m an Exchange 2010 admin and use powershell every day. I hate it. It is a step back. Even MS Exchange tech’s still struggle with it. 

Leave a Reply

Submit Comment

© 2016 PowerShell Magazine. All rights reserved. XHTML / CSS Valid.
Proudly designed by Theme Junkie.
%d bloggers like this: