Registriert seit: 9. Aug 2007
207 Beiträge
|
Programmstart nach Update
15. Mär 2013, 11:23
Hallo,
ich bin gerade dabei für unsere Programme eine Update-Komponente zu schreiben. Der Ablauf ist wie folgt:
- Updateliste wird von einem Webservice angefordet
- falls Updates vorhanden sind, wird ein Updater aus den Resourcen entpackt
- der Updater wird gestartet und die Updateliste wird an den Updater übergeben
- der Updater arbeitet die Liste ab und startet am Ende die Applikation neu
Problem dabei ist, dass der Updater je nach Installationort der Applikation mit Adminrechten gestartet wird, um z.B. Dateien unter C:\Programme\Applikation ersetzen zu können. Da der Updater in solch einem Fall mit Adminrechten läuft, wird aber auch am Ende die Applikation mit Adminrechten gestartet, was ja so nicht sein soll. Daher habe ich versucht die Applikation über CreateProcessAsUser zu starten. Jedoch läuft hier die Ermittlung des Usertoken per WTSQueryUserToken mit der Fehlermeldung ERROR_PRIVILEGE_NOT_HELD fehl. Nach intensiver Suche scheint es daran zu liegen, dass man WTSQueryUserToken nur aus einem Service heraus erfolgreich aufrufen kann.
Daher wäre nun meine Frage, wie ich es schaffe die Applikation mit den Rechten des aktuell angemeldeten Users vom Updater, der mit Adminrechten läuft, aus auszuführen. Das ganze ohne die Verwendung von WTSQueryUserToken.
Vielen Dank.
madas
|