获取 MSI 属性 python

Ido*_*o A 0 python windows-installer

我有一个 MSI 文件,我正在尝试提取文件属性的“详细信息”选项卡中指定的一些参数。

我找到了msilib,其中 SummaryInformation.GetProperty(field) 看起来像是要走的路,但我不明白如何使用它。我如何将其“连接”到现有的 MSI 文件而不是正在创建的文件?

Oha*_*had 5

msi 文件包含 cab 文件和数据库格式的信息。有关其结构以及如何查看它的更多信息,请参阅此链接:MSI 结构答案

我从未使用过 python msilib,但通过阅读文档,我的猜测是:

  1. 要获取 db 对象,请使用类似以下内容: dbobject = msilib.OpenDatabase(path, msilib.MSIDBOPEN_READONLY)

  2. 如果您想要摘要信息中的某些内容,那么您可以执行以下操作: info = dbobject.GetSummaryInformation(1) prop = info.GetProperty(field)

  3. 如果您需要的信息位于数据库表之一中,那么您应该对其执行 sql 查询: view = dbobject.OpenView(sql) rec = view.Execute(params) str_val = rec.GetString(field)