2009-10-09 4 views
6

Ich verwende Visual Studio 2008, um ein MSI-Installationspaket zu erstellen. Innerhalb der Installation habe ich zahlreiche benutzerdefinierte Aktionen. Innerhalb der benutzerdefinierten Aktion OnAfterInstall versuche ich eine exe zu starten, die von der Installation bereitgestellt wird. Die EXE startet ordnungsgemäß, wird jedoch in einem Sicherheitskontext von NT AUTHORITY \ SYSTEM ausgeführt (d. H. Unter den erhöhten Rechten, die dem Windows Installer-Prozess gewährt werden). Ich brauche die exe im Sicherheitskontext des aktuell angemeldeten Benutzers, der die Installation überhaupt gestartet hat. Kann jemand die exe starten, so dass es in diesem "reduzierten" Kontext läuft. Ich möchte wirklich vermeiden, den Benutzer nach ihren Anmeldeinformationen zu fragen, wenn möglich.Starten Sie Exe nach MSI-Installation, aber mit aktuellen Benutzerberechtigungen

Antwort

2

Sie müssen die Remotedesktopdienste-API verwenden: http://msdn.microsoft.com/en-us/library/aa383464%28v=VS.85%29.aspx. Es ist ab WinXP verfügbar.

Mit dieser API können Sie Ihre Anwendung im Zusammenhang mit jedem angemeldeten Benutzerkonto ausführen. Sie müssen als SYSTEM ausgeführt werden, um es verwenden zu können. Und du bist. Zum Beispiel können Sie Sitzungen mit WTSEnumerateSessions aufzählen, dann Benutzer-Token von WTSQueryUserToken nehmen und Anwendung mit diesem Token ausführen.