伙计们,

目前,我遇到了一个奇怪的问题,该公司2010年建立了MSI ...

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

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

我可以将参数传递给MSI执行此操作吗?或者,也许我可以在启动该过程时将凭据传递给该过程?

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

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

戴夫

编辑:为了清楚...我正在在我的域帐户下运行MSI,我希望我的自定义过程在“上下文”下运行。目前,它在系统帐户(而不是mydomain me)下(而不是我从事管理员)开始(无论我是否从管理员开始)。我正在使用Windows Server Datacenter Edition,如果有帮助...

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

有帮助吗?

解决方案

默认情况下,Windows安装程序将作为当前用户运行自定义操作。如果MSI升级,则自定义操作将作为高架用户运行。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top