This Powershell command does a lot of good:
Get-WMIObject Win32_Product | Sort-Object -Property Name | Format-Table Name, IdentifyingNumber -Wrap
It gets the names, and the long unique install codes (GUIDs), which look something like this:
{90160000-008C-0000-0000-0000000FF1CE}
Usually one can then run this:
MsiExec.exe /x {90160000-008C-0000-0000-0000000FF1CE} /q /qn /norestart
to remove quietly. When this doesn’t work, there is a plan B:
Get-WMIObject Win32_Product | Sort-Object -Property Name | Format-Table Name, LocalPackage -Wrap
which gets the names and the locations of the system-local copies of the MSIs. One should be able to do the same MsiExec command on those too, though this does not always work either.