7 Stimmen

Exe nach msi-Installation starten, aber mit aktuellen Benutzerrechten

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 wird ordnungsgemäß gestartet, läuft aber in einem Sicherheitskontext von NT AUTHORITY \SYSTEM (d. h. unter den erhöhten Rechten, die dem Windows Installer-Prozess gewährt werden). Eigentlich muss die Exe-Datei im Sicherheitskontext des aktuell angemeldeten Benutzers ausgeführt werden, der die Installation überhaupt erst gestartet hat. Weiß jemand, wie man die Exe-Datei so startet, dass sie in diesem "reduzierten" Kontext ausgeführt wird? Ich möchte nach Möglichkeit vermeiden, den Benutzer nach seinen Anmeldedaten zu fragen.

2voto

Oleg Punkte 232

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

Diese API ermöglicht es Ihnen, Ihre Anwendung im Kontext eines beliebigen angemeldeten Benutzerkontos auszuführen. Um sie nutzen zu können, müssen Sie als SYSTEM laufen. Und das sind Sie. Sie können zum Beispiel mit WTSEnumerateSessions Sitzungen aufzählen, dann mit WTSQueryUserToken ein Benutzerkennzeichen abfragen und Ihre Anwendung mit diesem Kennzeichen ausführen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X