如何找到msi的已安装用户?

时间:2013-08-08 12:45:05

标签: wix installer registry windows-installer powershell-v2.0

我们需要找到使用PowerShell安装msi的用户。

我试图通过HKEY_USERS进行搜索,但它提供的是用户的sid,而不是安装msi的用户名。

有没有办法找到已安装的用户?

2 个答案:

答案 0 :(得分:3)

(如果你有一个sid,你可以找到用户名,为什么不呢?)

但最好的方法是,如果msi是你的,那么在安装过程中将这些信息保存在注册表值或.ini文件中,您可以稍后读出。 有两个属性," LogonUser"和" USERNAME"后者是用户真正安装的。

如果你对msi本身没有影响,我不确定,如果这么容易的话。解释sids似乎是个好方法。

尽管如此:

标准方法是使用API​​例程MsiGetProductInfo()或MsiGetProductInfoEx()。你可以在MSDN中谷歌。但如果在设置对话框中未注册这些数据,我不确定它们是否始终包含信息。如果没有注册对话框,可能在静默安装后它们是空的?我从未使用它们来查找已安装为软件的用户。通常在自己的设置中,这是通过显式对话或操作完成的。

答案 1 :(得分:1)

其中一种方法可能是使用reg key,但Windows安装程序API中有一个名为MsiEnumProductsEx的函数

您必须指定它查询的用户SID并检查所有用户的所有已安装产品