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