Enumerating Installed Software with PowerShell
As I continue to learn more about PowerShell, I keep finding more uses for it. During an online course, we explored how to tap into WMI (Windows Management Instrumentation) classes to extract information out of a Microsoft Windows system on the network. I thought it was great that you can access various obscure details from a system, whether it be from the BIOS, the hardware, operating system, etc.
Soon after the online class I started making scripts to do all sorts of things. One of the scripts I started using leveraged a WMI class called Win32_Product, which lets you gather information about what is installed on a computer. But wouldn't you know it, I then also came across a Microsoft post that highlighted this same WMI class and described some possible side-effects it could have on systems. I quickly put it on the sidelines and worked to replace it with something that is actually faster (and safer) to use.
I wanted to put a blog post up about this part of my scripts to see if anyone else might find it useful. If you happen to be using the Win32_Product class for anything, or are interested in monitoring what software you have installed throughout the environment without committing to an expensive or timely implementation of something more robust, this might be something that interests you.
Check it out and let me know what you think...
https://gregbesso.wordpress.com/powershell/enumerating-installed-software-products/