2013-03-26 28 views

回答

1

我會得到.config文件的MD5哈希值,然後查詢.msis中的MsiFileHash表,直到找到匹配的哈希值。

+0

很遺憾MSI沒有像RPM(rpm -qf)這樣的功能。 – 2013-03-26 20:05:25

1

不能保證MSI安裝了該文件。我已經用了很多這就是說,一個快速的手段是MS-DOS命令FINDSTR

在與配置文件安裝到計算機:

CD %WINDIR%\Installer 
FINDSTR -i -m dark.exe *.msi *.msi 

這會是一個不區分大小寫在所有的MSI文件的字符串dark.exe。然後使用ORCA檢查產生的MSI以查看命中是否準確以及它是什麼產品。提醒:MSI名稱將是一些短的十六進制哈希,因爲這些是已刪除/緩存的MSI,而不是原始的MSI。

0

如果您可以在機器上運行代碼,那麼使用Windows Installer API的實用程序將爲您提供答案。這些工具很容易用VC++編寫。

Windows Installer API的起點是MsiEnumComponents,它將爲您提供系統上安裝的每個組件的組件代碼。從那裏,MsiEnumClients將爲您提供包含特定組件的每種產品的產品代碼。然後,您可以使用MsiGetComponentPath獲取組件的路徑。如果是您感興趣的路徑,請使用MsiGetProductInfoEx瞭解安裝它的產品,例如INSTALLPROPERTY_INSTALLSOURCEINSTALLPROPERTY_PACKAGENAME.

聽起來很複雜,但事實並非如此。

相關問題