我正在使用Visual Studio 2008来构建MSI安装包。在安装中我有很多自定义操作。在OnAfterInstall自定义操作中,我尝试启动安装部署的exe。 exe启动正常,但在NT AUTHORITY \ SYSTEM的安全上下文中运行(即在授予Windows Installer进程的提升权限下)。我实际上需要exe在首先启动安装的当前登录用户的安全上下文中运行。有没有人知道如何启动exe所以它在这个'减少'的上下文中运行。我真的想避免在可能的情况下向用户询问他们的登录凭证。
答案 0 :(得分:2)
您需要使用远程桌面服务API:http://msdn.microsoft.com/en-us/library/aa383464%28v=VS.85%29.aspx。它从WinXP开始提供。
此API允许您在任何登录用户帐户的上下文中运行应用程序。您需要作为SYSTEM运行才能使用它。你是。 例如,您可以使用WTSEnumerateSessions枚举会话,然后通过WTSQueryUserToken获取用户令牌并使用此令牌运行应用程序。