Windows安装程序安全性/凭据问题

时间:2010-12-02 15:13:57

标签: security installer windows-installer credentials process.start

民间,

目前我用Visual Studio 2010构建的MSI有一个奇怪的问题......

当我运行msi时,它执行一些任务,然后执行我们构建的工具 - 然后该工具执行一些我们在自定义任务中无法完成的更高级的工作。

这里的问题是,当msi启动我的自定义构建工具时,它不会使用与启动MSI相同的凭据(即我的管理登录)执行它。

我可以将一个参数传递给MSI以进行此操作吗?或者也许我可以在启动时将凭证传递给流程?

我的流程是使用Process process = Process.Start(procInfo)开始使用的。我还注意到能够传递参数化的用户名/密码/域,但这取决于正在安装的用户 - 这可以从安装程序中提取出来吗?

欢迎任何帮助(或问题)。

戴夫

编辑:为了清楚起见......我在我的域帐户下运行MSI,我希望我的自定义流程在该“上下文”下运行。目前,它在SYSTEM帐户(而不是mydomain \ me)下启动(无论我是否以管理员身份启动)。如果有帮助,我正在使用Windows Server DataCenter版本。

我还应补充一点,我认为这是一个政策问题,但我不知道要检查什么/在哪里检查......

1 个答案:

答案 0 :(得分:1)

默认情况下,Windows Installer以当前用户身份运行自定义操作。如果MSI升级,则自定义操作将作为提升用户运行。

请注意,如果您以管理员身份运行MSI,并不意味着您的自定义操作将具有完全管理员权限。在Vista或更高版本上,任何用户都可以通过提升获得管理员权限。

因此,如果您的自定义操作需要管理员权限,请确保他们使用 msidbCustomActionTypeNoImpersonate 标记,以便它们在本地系统帐户下运行。

如果这不是问题,您只需要访问当前用户数据,请提供更多详细信息?