2009-10-09 98 views
6

我使用Visual Studio 2008構建MSI安裝包。在安裝中,我有許多自定義操作。在OnAfterInstall自定義操作中,我嘗試啓動由安裝部署的exe文件。該exe開始正常,但在NT AUTHORITY \ SYSTEM的安全上下文中運行(即在授予Windows Installer進程的提升特權下)。我實際上需要exe在當前登錄的用戶的安全上下文中運行,他們首先開始安裝。有誰知道如何啓動該exe文件,因此它運行在這個「減少的」上下文中。我真的想避免在可能的情況下要求用戶提供登錄憑據。msi安裝後使用當前用戶權限啓動exe

回答

2

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

此API允許您在任何登錄用戶帳戶的上下文中運行您的應用程序。您需要以SYSTEM的身份運行才能使用它。你是。 例如,您可以使用WTSEnumerateSessions枚舉會話,然後通過WTSQueryUserToken獲取用戶令牌並使用此令牌運行應用程序。