Whether you're writing your first PowerShell script or a seasoned expert, there is no better tool for a system administrator than PowerShell. It cuts down time spent on tasks, automates away recurring tasks, and gets you access to data to help you focus on what’s most important. Because PowerShell is so valuable, a lot of very smart people are out there creating modules to extend its value to you. Let's take some time to highlight my favorite modules and how we can utilize them.
1. PSReadLine
This one is an easy first call for me. I could write an entire article on just this module, and my team would make me trim it down because it’s too long. PSReadLine is the ultimate tool to get the most value out of PowerShell. The module adds several features that just make everything easier. You have the history it can pull up to cut down on the time spent typing.
You can use it to open inline help, which takes you to the help documentation and even to the section of the command you are working on without needing to step out of your session.
Then, I pressed F1 to open the help menu.
It can also utilize AI predictors for modules you are currently using, making recommendations specific to larger modules to help you get results more quickly. The best current example of this is the Azure feedback provider, which helps sift through the thousands of commands to get what you need very fast. There is so much to this one; I recommend you check out the PSReadLine 2.2 GA article by Jason Helmick for a quick look into all it can do.
2. dbatools
The dbatools module steps out of general sysadmin and into database administration. This module is massive and provides everything you need to make sure your SQL is its best self. As Jeffrey Snover put it, “If you use SQL, someone on your team should be a dbatools pro.”
If you are looking to become an expert on keeping your databases clean, this module is so robust that there’s a dbatools book on how to get the most out of it.
3. PowerShellAI
There have been several entries into getting the most out of AI with PowerShell, but Doug Finke’s seems to be gaining the most steam. For a super accurate real-world example, let’s say I was automating out some task when, all of a sudden, I desperately needed to know who owned the NFL combine bench press record. Well ... bam!
Some people may use it to research commands and as an aid to get the most out of those commands, but those who know its true value use it for mundane trivia.
But that’s not all it can do. You also can use DALL-E if the need for a random AI image arises. The value here is too great to measure.
Get-DalleImage "Velociraptor doing the macarena"
Bonus: Image2Text
There’s no better way to highlight this than by combining the DALL-E image from the PowerShellAI module with this module. I saved myself a thousand words here.
$Image = Get-DalleImage "Kitten kungfu fighting an alligator"
New-Image2Text -ImagePath $Image -OutputTxtPath C:\temp\kitten.txt
I have never struggled to write a blog this much. There are thousands of modules, and picking a favorite is not easy. Then I have limited space to do the write-up for each, and it feels inadequate. I do know that if you have ever thought to yourself, “I wish PowerShell could do X,” you are not the first to think it, and someone likely has built a module to help you out.
I interview people from the PowerShell community every week on The PowerShell Podcast, and one question I always ask is, “What are your three favorite modules?” You always get a few duplicates over the years, but every guest has at least one that is new to me. You should spend some time in the module world if you’re looking to get the most out of PowerShell.