The WIN32_Product WMI class doesn't return all the installed software. To get a list, try accessing these two registry keys:
# get 64-bit software on 64-bit systems OR 32-bit software on 32-bit systems
[array]$32_or_64bitsoftware = get-itemproperty 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'
# get 32-bit software ON 64-bit systems
[array]$32_on_64bitsoftware = get-itemproperty 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'