Beyond Impact Blog

On to the future with Powershell...

Feb 21, 2017 6:13:14 PM / by Cole McDonald

We're a month and a half out from when I started my 5 Painless Steps Powershell learning series.  It was a smashing success.  I was hoping a few dozen people would find it useful.  It was viewed by over 2500 people.  Yikes!
The point of the series was specifically to bring more Ops to devops.  Learning to program can be daunting and takes a dedication of time.  The thing to realize, in my opinion, is that the 5 steps I presented can be applied and learned in any language.  Most of the commands are just slight variations from one to the other as well.  For instance, some languages use elseif, others else if.  There are 2 trains of thought for the for loop, the (init, test, increment) model Powershell uses and the for/next model ($x = 1 to 100) used in basic.
Once the language has been abstracted and is fundamentally interchangeable with any other language, it becomes a framework for shuttling and mutating data.  The sources of the data are the exciting pieces to me.  We have all kinds of monolithic repositories of environmental information for each of our businesses.  Knowing how to program allows us to answer the needs we identify in our worlds.  I call them the "wouldn't it be nice if I had..." solutions.
Wouldn't it be nice if I could adjust the amount of hard drive space allocated to a backup server in azure based on time of day to allow for the extra space needed for compression while reducing cost over all by lowering classification of the server once the archival is completed.
Wouldn't it be nice if I could analyze the resource usage over time to figure out when I need to add cores to a server during the day and scale it dynamically.
Wouldn't it be nice if my environment would auto document itself.  None of the off the shelf software accounts for this one odd thing we do.

Wouldn't it be nice if ... fill in your need here.

This is DevOps.  As operations technicians, server admins, and/or customer support persons, we have a head full of processes and environmental states that inform the decisions we make day to day.  Knowing how to code allows us to build those decision trees using that same data we'd look at from disparate silos of information.  Having those decision trees can then be turned into actions based on the outcomes.  Those actions can move us from "click here... now click here" administration to an environment which can react to usage and need dynamically.
If we start using historical data, we can even enter the "big data" realm and let our code perform our RCA discovery tasks for us... potentially even auto remediating found cases in the future.  This is where we move into the realm of machine learning.  It's not a large leap either.  I just got there in 2 paragraphs.  All we need to do is remember the simple phrase:
Any "Wouldn't it be nice" moments we have are answered by that phrase.  When asked if you can make something happen, yes can always be the answer.  It'll be tempered by the time and effort required but there's always a solution to whatever specific task you're being asked to explore.
The next things I'm going to be looking into is how to get data and the mechanisms we have avaiable to us for processing them.  System Center will be much of my focus, as well as how to access information from software that doesn't offer a powershell friendly API.
If you missed any of the parts of the powershell learning series or wish to review them, here they are:


Did you find this article useful?  Let me know at

If you want to be kept informed, follow our RSS feed:

Learn more about PowerShell in Azure

Beyond Impact is a Cloud Hosting and Managed Services provider based in Minneapolis, Minnesota. 
You can learn more about our Cloud Services at

Tags: 5 painless steps, powershell, automation, devops

Cole McDonald

Written by Cole McDonald

Internet Pioneer, Digital Futurist

Subscribe to Email Updates

Recent Posts