7

我正在使用 Visual Studio 2008 构建一个 MSI 安装包。在安装中,我有许多自定义操作。在 OnAfterInstall 自定义操作中,我尝试启动安装部署的 exe。exe 启动正常,但在 NT AUTHORITY\SYSTEM 的安全上下文中运行(即在授予 Windows Installer 进程的提升权限下)。我实际上需要 exe 在首先启动安装的当前登录用户的安全上下文中运行。有谁知道如何启动 exe,以便它在这个“简化”上下文中运行。如果可能的话,我真的想避免向用户询问他们的登录凭据。

4

1 回答 1

2

您需要使用远程桌面服务 API:http: //msdn.microsoft.com/en-us/library/aa383464%28v=VS.85%29.aspx。它从 WinXP 开始可用。

此 API 允许您在任何已登录用户帐户的上下文中运行您的应用程序。您需要以 SYSTEM 身份运行才能使用它。而你是。例如,您可以使用 WTSEnumerateSessions 枚举会话,然后通过 WTSQueryUserToken 获取用户令牌并使用此令牌运行应用程序。

于 2010-09-07T20:25:43.583 回答