从MSI文件中检索公共属性

是否有从Windows MSI文件检索可用公共属性的工具或机制?

一些提供MSI文件的供应商本身并不logging这些文件,所以我很好奇,看看是否有方法在没有源代码的情况下公开这些文件。

Lessmsi提供了一个命令行以及交互式应用程序,用于从.msi中检索任何属性。

以交互方式打开.msi,然后转到表视图并select或键入“属性”。 然而,虽然这给出了属性名称,但它并没有给出该属性的有效值(或者我还没有发现正确的位置)。

命令行列出属性表到控制台(令人沮丧,不能用简单的> output.csvredirect捕获)

 lessmsi l -t Property ...\path\to\setup.msi 

鉴于MSI文件存储公共属性在内部数据库中,您实际上可以使用VBScript和SQL查询它们。

这是一个示例脚本 ,它将返回存储在MSI文件中的所有属性。 按照惯例使用大写字母来定义公共属性,所以它们通常是可以识别的。

我认为现在可能是最好的方式是使用PowerShell。 这是一个脚本,非常好的工作: https : //gallery.technet.microsoft.com/scriptcenter/Get-MsiDatabaseProperties-09d9c87c