It seems that nearly every day, I read an article, comment, or blog post about how someone, usually an IT with years of experience, is complaining about something. Now, most of the time these complaints are valid. Yes, Java sucks. Yes, Microsoft’s licensing scheme is insanity bordering on a sociopathic tendency. Yes, Linux distro X is better than Linux distro Y. But in the past few months, I’ve seen one complaint echo’d over and over again, and I’m here to say it’s time to shut up and move about it.
The complaint is usually about Powershell.
Yes, Powershell. In my opinion, one of the greatest tools provided to us by Microsoft in the past 10 years. The amount of negative feedback and outright hostility towards it is simply staggering. Admins, both veteran and new, have rallied against this language repeatedly, and why? Because, in many ways, it makes them have to learn something new.
Yes. I said it. It takes away the ability to click next next next done to do something. Now, there’s nothing wrong, inherently wrong with that idea of installing or configuring software. It has done us fine for the last 20 years. But the computing landscape has changed. Scale and automation are now critical parts of any infrastructure. And if it’s not part of yours, maybe your the one who is wrong. Automating and setting up magic deployments of something that requires a next next next done install is quite often a very difficult feat, if not outright impossible by design. But doing it in Powershell is fast, repeatable, scriptable, and most importantly, portable.
Lets look at setting up a DNS server on Windows Server 2K12R2:
First, the classic way:
- Start Server Manager
- Click the manage menu, and then select Add roles and Features
- Click next on add Roles and Features Wizard.
- Select installation type. For DNS, that’s Role-Based or Feature-based installation
- Chose the server you want to install
- Click Add features on the pop up if you need them!
- Click next again, as you don’t need any of these things, but i just wants to make sure.
- Click Done.
8 Steps. To install DNS. Now, yes, most of those are simply click next or select this and click next. But lets look at doing it in powershell:
- Open Powershell and run:Install-WindowsFeature DNS –IncludeManagementTools
One step. One command. And we have the same result. But people seem to think this is more difficult than doing all 8 of those in one shot.
Honestly, I swear it comes down to laziness. Instead of learning to be more efficient, people are instead holding onto their aging ideas and standard setups following the “If it ain’t broke” mentality. Well I’m here to say that it isn’t broken. But the person running it may be. Keep up with the times, or get out of the way.