Read GUID
$MSIPath = “C:\Temp\PronestorOutlook2016x64Setup.msi”
$Installer = New-Object -ComObject WindowsInstaller.Installer
$Database = $Installer.GetType().InvokeMember(“OpenDatabase”, ‘InvokeMethod’, $null, $Installer, @($MSIPath, 0))
$View = $Database.GetType().InvokeMember(“OpenView”, ‘InvokeMethod’, $null, $Database, @(“SELECT `Value` FROM `Property` WHERE `Property` = ‘ProductCode'”))
$View.GetType().InvokeMember(“Execute”, ‘InvokeMethod’, $null, $View, $null)
$Record = $View.GetType().InvokeMember(“Fetch”, ‘InvokeMethod’, $null, $View, $null)
$ProductCode = $Record.GetType().InvokeMember(“StringData”, ‘GetProperty’, $null, $Record, 1)