This is a picture of me.

Simon Buckley

SMNBKLY.CO


You're Not Too Busy To Learn PowerShell

11 August 2019

Perhaps “changed my life” is reckless dramatisation. I just wanted to use a Barry GIF.

So you’re an IT professional. You find you’re spending most of your working hours putting out fires and chasing your tail. Maybe you’ve considered learning PowerShell before, but haven’t yet found the time in your busy work schedule; what with the tickets coming in and the deadlines you’re already struggling to keep.

This is the rut where I was stuck, and while learning PowerShell might not have changed my life, it gave me the capacity to move from that reactive, stressful environment to a successful, proactive environment where the users I supported loved the service my team provided.

When you’re in a job that’s entirely reactive, you’ll find yourself forever on the edge of burnout. Your work will stress you out, and your mountain of tickets will drive you to despair. You’ll resent your boss, you’ll resent the staff that you support, and they’ll all be able to tell.

The solution? Learn PowerShell.

“But how do I fit learning a new scripting language into my schedule?” you ask. My response to that is you can’t afford not to.

Let me explain what I mean by starting with a basic case example. You receive the following email:

Hi IT,
Could you please move all the members from the ‘Sales Team’ distribution group to the ‘Sales and Marketing’ group?
Regards,
Sharon

In an environment where you’re using Office 365 and Exchange Online, this task is impossible to complete from the web-based admin interface. You could take note of every member in the Sales group, manually add each one to the Sales and Marketing group, then delete each member, one by one, from the original Sales group.

It doesn’t need to be that hard. The PowerShell script below will perform this task in a second, flat. With a solid understanding of PowerShell’s basics, and with PowerShell’s built in auto-completion, the entire process might take you 30 seconds from start to finish.

Get-ADGroupMember "SalesTeam" | ForEach-Object {
    Add-ADGroupMember -Identity "SalesAndMarketing" -Members $_ -Confirm:$false
    Remove-ADGroupMember -Identity "SalesTeam" -Members $_ -Confirm:$false
}

While you might’ve shaved off a few minutes of your time with that example, we’ve only scraped the surface of what’s possible. Once I became more familiar with PowerShell, I was able to automate the following tasks to a point where I wasn’t involved in any step of the process:

And suddenly, I had a lot less stress in my day to day work, and the staff I supported became used to instantaneous resolution of the tickets they opened with me.

You’re not too busy to learn PowerShell, you’re too busy because you haven’t yet learned PowerShell.
Automation PowerShell

This post was last updated on 8 October 2019