Overcoming the PowerShell Hurdle
The way to grasp all the complexity of PowerShell is to use it and take it one step at a time. At some point, a little PowerShell will go a long way in your IT career.
- By Jeffery Hicks
I thought I'd take a step back for a moment and instead of discussing a PowerShell feature, explore how to tackle what can seem like an insurmountable obstacle. I see many forum posts plus the occasional e-mail lamenting about where to start, how hard PowerShell is and why one should care.
The last comment is the easiest to answer: PowerShell is critical to your career because Microsoft has decided PowerShell is critical in how it manages the products most likely in your environment. PowerShell is not going away, is not a fad and has been the "future" for the last six years. In much the same way that Microsoft went all in with the .NET Framework, I feel it is doing the same thing with PowerShell. As I often say, "It is not a matter of if you'll use PowerShell, only a matter of when."
That said, this doesn't mean you will be saddled with using console and having to type a lot of commands. There will be many products you manage with PowerShell that you'll interface with through a GUI without even realizing you are using PowerShell. PowerShell is a management engine that drives efficiency up and costs down. This engine can be mounted in a variety of vehicles. We are most familiar with the big blue console and the Integrated Scripting Editor (ISE), and that is where most people learn how to use PowerShell.
The challenge for many IT pros is that to take full advantage of this engine you need to get as close to it as possible. Usually this means using PowerShell from the command line. Running cmdlets that create objects which are passed and manipulated in a pipeline. Don't think of PowerShell as just a scripting language or a tool only for programmers.
To me, and the way that I teach PowerShell, it is an interactive management tool. Yes, there is typing but the console has many ways to simplify this process. Once you understand how to run commands in the shell, then you can take more complex commands and put them in a script file. There is nothing you can't do in the console that you can do in a script. Scripts save you typing time and allow you to begin building a library of tools that will make you and your team more efficient.
I totally understand being overwhelmed by something new. Even now looking at all the new features in PowerShell 3.0. I wonder how I'm going to learn and understand them all. Well, I'm going to do the same thing I tell my students: Read the help and use PowerShell every day. Start simple. Focus on running commands in the shell to get your job done. Understand how objects move through the pipeline and start thinking in PowerShell.
Don't worry about trying to write scripts right off the bat. I see too many people new to PowerShell trying to write complex scripts when they have the barest grasps of PowerShell fundamentals, let alone good scripting techniques. Scripting in PowerShell is actually not too difficult. The language elements like If constructs are few but easy to pick up. Sure, writing advanced functions and modules is a bit harder, but that is why we call them "advanced." Don't feel you have to write a 1,000-line module in order to use PowerShell.
The best way to get over the PowerShell hurdle is to take one small step every day.
Jeffery Hicks is an IT veteran with over 25 years of experience, much of it spent as an IT infrastructure consultant specializing in Microsoft server technologies with an emphasis in automation and efficiency. He is a multi-year recipient of the Microsoft MVP Award in Windows PowerShell. He works today as an independent author, trainer and consultant. Jeff has written for numerous online sites and print publications, is a contributing editor at Petri.com, and a frequent speaker at technology conferences and user groups.