user

Examining PowerShell Pros and Cons

Introduction

Crista Perlton

Crista Perlton


LATEST POSTS

How Licenses Work with Chocolately 22nd March, 2024

How to Handle npm Dependencies with Lock Files 16th January, 2024

PowerShell

Examining PowerShell Pros and Cons

Posted on .

My colleague sent me a story on Reddit titled “PowerShell is a Waste of Time” and wanted to know my thoughts.

Zixxer, a sysadmin, brought up the idea of using PowerShell to his manager and was shut down. After explaining his thoughts, Zixxer’s received the standard reply: “our environment isn’t big enough to use it effectively.”

The comments are split down the middle: half say their boss is just as reluctant to adopt PowerShell, the others agree the boss was right to shut down the idea of scripting the solution.

When I read the title, I immediately thought “Oh here we go – another moronic manager that doesn’t understand how PowerShell works so no one gets to use it.” But as I read the comments and thought on it some more, I ended up replying: “I can 100% understand where their boss is coming from.

So is PowerShell a Waste of Time?

Let me explain… PowerShell is an extremely powerful, versatile, and reusable technology but I feel like what Zixxer’s boss was actually saying is that not everything you do to provision and maintain your servers needs to be automated. Sometimes doing things manually or creating a simple application for more junior members to use is the right choice.

Your team’s time is valuable and (more often than most like to admit) it’s a waste of time to create a script when things can be done manually. Not only are PowerShell scripts time-consuming to make, but they also introduce risk.

Let’s imagine we have to open one port and close another port on a handful of servers.

To do it manually, you’d simply have to navigate through the UI click start/control panel/system…find the ports, and open/close them. This is the easiest and a very reliable way of opening/closing these ports. Doing things manually is intuitive, it’s easy to train junior members on, and the user interface presents a limited number of things you can do based on buttons available to click. What that means is that there’s a very low chance someone can make a critical mistake.

You could script out a solution, however, scripts are extremely technical and therefore aren’t very accessible to junior members. The risk of failure or catastrophic failures is highest when using scripts (compared to manual.)

So I Should Do Everything Manually?

No, you don’t have to do everything manually. Manual solutions work great for one-time jobs and small-scale, irregular maintenance. Opening/closing two ports is simple to do on 10 servers, but 100…you can expect a mistake or two to slip in. If you’re looking for a solution that gives you all the power and flexibility of scripts with all the control and guidance of manual configuration, you need to be using GUI’s.

GUI’s let users run PowerShell by themselves and provide a job-specific interface to enforce limited input. They allow you to limit who can do what with PowerShell in that given situation and give “immediate visual feedback” (aka lets you know when you’ve forgotten a required form, for example.)

Using a GUI is intuitive and allows anyone on your team, regardless of PowerShell experience, to be productive.

Creating a GUI with Otter

Otter can automatically generate a UI around your scripts. It does this in two ways:

  • Comment-based Help
  • Otter’s Job Template Feature

Otter lets you add comments and descriptions and empower your team to do the work they need to without oversight through job templates. The next time anyone needs to run a job, even if they don’t have permission to run scripts, can then use the template, which will restrict inputs AND will remind you when you’ve forgotten to fill out required fields. (In an untemplated world, you’d have to bug your manager any time you needed to do this and wait around until they were free.)

PowerShell CAN be a Waste of Time.. Sometimes.

PowerShell scripts are incredibly versatile tools that can revolutionize (for better or for worse) the way that your team operates. I don’t think that PowerShell is a waste of time, but I can understand why a manager wouldn’t want someone on their team using it.

However, I think that even the most PowerShell-adverse managers can rest at ease knowing the scripts running on their servers won’t end in catastrophic failure.

Download Otter (free forever) and get started with your own GUIs.

Still need convincing that PowerShell is far from being a waste of time? Take a look at our free eBook, “Ultimate Powershell Levelup Guide” for ways to give your PowerShell scripts and modules a boost. Sign up for your copy today!

Crista Perlton

Crista Perlton

Navigation