As I stated in Who I Am, I can wear many hats in a single day as part of a small, lean IT team. I need to find ways to do tasks faster in a consistent, repeatable manner. Even more, I need to be able to hand these tasks off to an Operations team so they can execute without having to follow a verbose, manual procedure document. PowerShell is the way!
PowerShell is a standardized automation and management scripting framework built on .NET. Not only can it natively manage the Windows OS, but it now is the behind the scenes management glue of Microsoft’s popular platforms like Active Directory, Exchange, Azure, and more. In addition, other major IT vendors like VMware and NetApp have created PowerShell modules for managing their solutions, turning PowerShell into a universal glue for managing Windows-based IT environments.
When I write a script in PowerShell to accomplish a task, I accomplish three things:
- I make the process efficient. What may take minutes to perform manually, the PowerShell solution can complete in seconds.
- I make the process consistent. By incorporating decision logic and configuration choices, the PowerShell solution will output consistent results, removing opportunity for manual error.
- I make the process repeatable. Whether performing a task once or a hundred times, the PowerShell solution will repeatedly give me the efficiency and consistency I need, and I can turn the solution over to IT Operations with input parameters and expected output, without requiring expertise knowledge of HOW it works.
So why blog about PowerShell?
I decided to start a PowerShell blog for two reasons:
- To force myself to understand PowerShell better
- To contribute to the Internet knowledge base on PowerShell
To force myself to understand PowerShell better
“If you can‘t explain it simply, you don‘t understand it well enough.”
Often times in IT, we can be seduced into following instructions or recommendations blindly without fully understanding what we are doing. We may do this to save time or because the matter at hand does not intrigue us. This lack of interest up front can come back to bite us later when we need to enable a system to do something new or troubleshoot a problem. How can we know what a system is capable of or fix a problem if we don’t attempt to understand it?
By blogging, I take time outside of my professional responsibilities to sit down and explore, to ask and attempt to answer how and why about PowerShell. I will know I have gained a good understanding about a function or problem when I can communicate my knowledge clearly in written or video form.
Also, even when I think I know something, writing about it forces me to re-learn it, which I find gives me a deeper understanding of a concept than I had before I sat down to write about it.
To contribute to the Internet knowledge base on PowerShell
“Never memorize something that you can look up.”
What did people do before the Internet when they didn’t know something?!? They probably went to the library or asked a friend if they knew. While potentially effective, NOT efficient. The Internet and search engines puts a world of information readily at our fingertips. For myself a majority of continuous self-learning and troubleshooting has been conducted from a search box.
By blogging, I seek to contribute PowerShell explanations, How-tos, instructions, recommendations, problem resolutions, and discussion to this ever expanding ocean of knowledge.