Using the "Win32_Product" WMI class has some downsides, the most notable is that it uses the MSI provider to enumerate the products and gather information. Every time you query Win32_Product it does that enumeration which has a non-inconsequential imact to the system (my Win10 quad core i7 desktop jumps to 25% CPU). You can see these queries happening in the Windows application log too.
There's some work arounds, like forward only enumerators, but the one I favor is from the Scripting Guy. It queries the registry for the software information and is significantly faster (and doesn't cause the MSI provider to eat a lot of CPU on the hosts).
Hope that helps!
If this post resolved your issue, please help others by selecting ACCEPT AS SOLUTION or adding a KUDO.