1

伙计们,

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

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

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

是否有我可以传递给 MSI 的参数来执行此操作?或者也许我可以在启动时将凭据传递给进程?

我的过程开始时Process process = Process.Start(procInfo)没有花哨的东西。我还注意到传递参数化用户名/密码/域的能力,但这会因正在安装的用户而异 - 可以以某种方式从安装程序中提取吗?

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

戴夫

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

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

4

1 回答 1

1

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

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

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

如果这不是问题,您只需要访问当前用户数据,您能否给我更多详细信息?

于 2010-12-02T15:59:10.033 回答