After using PowerShell for a few years I can say that it has made my work a lot more enjoyable. It’s been unchartered territory for me although the PowerShell community has been a great space to learn and ask for help.
At work I’ve tried to encourage people to learn PowerShell from the ground up to really understand it and not just copy snippets from search results and massage it to make it work.
Here are a few reasons why it’s a good idea to learn PowerShell.
Automation
Whether you use PowerShell as a command shell or as a scripting language it is going to make you quicker. I get frustrated when I have to click through GUIs to get something done multiple times, plus with things like creating new Active Directory users you can make mistakes, PowerShell just makes it easier and makes things more accurate and consistent.
PowerShell is great for gathering information and creating reports. I frequently use it to get list of users from groups, edit groups, find DHCP leases on a DHCP server, get computer information. Even setting an IP address or finding a file is just easier using PowerShell.
It’s Cross platform
PowerShell runs on Windows, Linux and macOS. I have only used it in Windows but the fact that they have made it cross platform means it could be easier to start getting into Linux since Cmdlets consist of Verb-Noun I think it’s easier to figure out and or even remember commands.
It’s an investment
There are loads of modules to manage almost any Microsoft or third-party technologies, for example, Windows, Exchange, AWS, VMWare to name a few. A lot of work has gone into designing PowerShell modules and built-in cmdlets. There is great documentation available on how to use them.
Learning PowerShell is a skill that has set me apart from my peers and I think the ability to automate tasks is something that is essential in the industry. I think it’s one of the reasons I was promoted to System Administrator in my current workplace.
It uses objects
Since there is a consistent way that PowerShell outputs data, there is no need to parse text output to extract information from output. There is built-in support for common data formats like CSV, JSON and XML which makes it easy to just import or export data with minimal effort.
Conclusion
I’m sure that there are other reasons and perhaps better explanations but these have been some of the things I could think of. After listening to the PowerShell Podcast episode on Roadmapping your PowerShell Journey with Sean Wheeler, I felt encouraged to start lunchtime sessions to provide some training at work, so far no one has responded, but I’m hoping to get people onboard soon.
I did a Sketchnote a few years ago with the same title - it's at https://mattypenny.micro.blog/2022/01/16/why-powershell.html in case you're interested
Great article. I think in the same way as you, Adrian. I truly believe in the use of PowerShell for automation. I always develop scripts for deploying the solution I'm coding. Or, just generate helpers that ease my work.
I would also include the ability to add your own commands or modules. If you developed a set of useful scripts, they can be package as a module. From that moment, you can use them in any machine.