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)