MsiExec: using PowerShell to list the GUIDs for uninstalling

I want to do a silent uninstall of an uninstalled program, but I don’t know its source .msi.

2 steps that seem to work: first…

Get-WmiObject win32_Product | ft identifyingnumber, name

Then if I see the GUID I want to uninstall then I do this:

MsiExec.exe /uninstall '{1690CE56-2231-4E59-9006-A0876D949EA8}' /quiet /log c:\temp.txt 

I can then restrict the set return like so, if I might want then to go onto delete my current IISExpress:

Get-WmiObject win32_Product | where {$ -like '*iis*'}

msiexec.exe /uninstall '{13FD7E30-D2F1-498D-ABC2-A4242DB6610E}' /log c:\scratch\ma.log

Ref the example above, if you fail to put in single quotes, then I found that it just silently fails. That might be related to PowerShell (unlikely but possible)… but I’m not going to spend time proving it either way.