我们需要找到使用PowerShell安装msi的用户。
我试图通过HKEY_USERS进行搜索,但它提供的是用户的sid,而不是安装msi的用户名。
有没有办法找到已安装的用户?
答案 0 :(得分:3)
(如果你有一个sid,你可以找到用户名,为什么不呢?)
但最好的方法是,如果msi是你的,那么在安装过程中将这些信息保存在注册表值或.ini文件中,您可以稍后读出。 有两个属性," LogonUser"和" USERNAME"后者是用户真正安装的。
如果你对msi本身没有影响,我不确定,如果这么容易的话。解释sids似乎是个好方法。
尽管如此:
标准方法是使用API例程MsiGetProductInfo()或MsiGetProductInfoEx()。你可以在MSDN中谷歌。但如果在设置对话框中未注册这些数据,我不确定它们是否始终包含信息。如果没有注册对话框,可能在静默安装后它们是空的?我从未使用它们来查找已安装为软件的用户。通常在自己的设置中,这是通过显式对话或操作完成的。
答案 1 :(得分:1)
其中一种方法可能是使用reg key
,但Windows安装程序API中有一个名为MsiEnumProductsEx的函数
您必须指定它查询的用户SID并检查所有用户的所有已安装产品