I have avoided programming for several years, particularly because I could not just wrap my mind around the concepts of objects, classes, loops, etc. In fact, a few times I bought books on visual basic, to C++ and Python, but could never get past “Hello World”; beyond that, things would just fall to pieces. It was also the reason I could never make it far as a Unix/Linux admin as automating tasks beyond a few commands in a batch file was certainly out of scope. Besides, the second line of every job ad was bash scripting. I stuck to windows.
One thing was for sure, I liked the command line. I have always felt it was easier to take control of things at the command level. Remembering that in the DOS days (and early windows 3 days), after battling with windows for a while, it was the command line that would resolve the problem for me. I did my best with the commands that came with windows, but how far could one go with that? The diversity of the structure of the commands made the learning curve even steeper.
When I came across PowerShell for the first time I was drawn to:
- The consistency in the command structure – the verb-noun structure which signifies a simple instruction
- The ability to massage the output of a command to get a desired results
- The abundance of help and the willingness of the community to help
- The object pipeline
- And much more.
However after learning the initial commands Get-Service, Get-Process, and Get-Eventlog I asked myself, now what? It turns out, every book I read started with scripting on page 2 and I was intimidated. For an entire year I didn’t go back to PowerShell. The books I bought sat on my shelf gathering dust.
During Teched 2011 Atlanta, I stumbled on a presentation by Don Jones – on PowerShell Remoting. I was amazed by what I could achieve with PowerShell. I ordered his book,
Learn PowerShell in a month of Lunches, immediately after that presentation and did not regret it.
My intimidation evaporated after reading the first chapter. I told myself, this man was thinking about me when he wrote this book. In that book, written in plain English, I understood:
- The use of PowerShell’s built-in help, Get-Help
- PowerShell’s objects
- The pipeline and the meaning of byPropertyName and byvalue
- The use of get-member to discover the attributes of a command output..
- And more.
There is no doubt that Don inspired me a lot in learning PowerShell, but it also important here to mention the great community that PowerShell has. Everyone is simply amazing. Each day as I read blogs or tweets, I never stop wondering how much information people are willing to share at no cost.
I couldn’t believe my eyes when I read about Lee Holmes offering copies of his books to those who will go out to help someone in real world problems with PowerShell. That to me was simply amazing, and displays the power of the community.
The gentlemen of PowerScripting Podcast, Jon and Hal, are doing such an incredible job. Each interview presented in that podcast takes my breath away. Jason Helmick’s interview, and my subsequent chat with him, gave me hope as an admin.
I can’t begin to mention all that have inspired me in the community, as I’m sure no one wants to read a hundred pages of names.
Of course the greatest inspiration is in what the shell itself is capable of doing. From the ability to create VMs in a matter of minutes, to the creation of a thousand Active directory users in seconds, and managing non-Microsoft products like VMware, Cisco, Netapp, etc, the product is simply amazing.
My next project is PowerShell in Action, Bruce Payette. I hope to advance my knowledge in PowerShell with that.
Would you like to share your story? Win one of TrainSignal’s PowerShell training courses? Learn more about the “How I Learned to Stop Worrying and Love Windows PowerShell” contest.