Einzelnen Beitrag anzeigen

Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#1

[Vista] Programm explizit ohne Administratorrechte starten

  Alt 25. Feb 2009, 11:02
Hallo,

ich hab hier eine kleine Verständnisfrage.
Und zwar habe ich unseren Online Updater überarbeitet, so dass er sich ins Vista-UAC-Konzept einpasst.

Das beinhaltet, dass es jetzt zwei EXEn gibt:
Eine führt die reine Überprüfung nach Updates aus und hat ein Vista-Manifest mit "asInvoker" als Rechteanforderung.
Gibt es Updates, dann erhält der "Download & Install"-Button ein Vista-UAC-Schild per API und auf Klick wird die zweite
EXE mit passenden Parametern gestartet. Diese hat "requireAdministrator" im Manifest, da im Programmeverzeichnis hantiert wird. Der Aufruf erfolgt per ShellExecute, damit die UAC-Abfrage kommt statt einer Fehlermeldung, was auch wunderbar funktioniert.

Jetzt gibt es ein spezielles Problem. Und zwar muss der "Checker" sich selbst neustarten können. Das habe ich realisiert, in dem ich den "Downloader" mit einem speziellen Parameter starte, der dafür sorgt, dass der Downloader im OnCreate einfach die Checker.exe starte und sich dann selbst beendet. Soweit, so gut. Das Problem ist jetzt, dass der durch den Downloader gestartete Checker anscheinend mit den Adminrechten des Downloaders läuft und somit nicht mehr in die richtigen Registry-Zweige kommt (um die Registry komm ich momentan nicht drum herum).

Meine Frage ist jetzt, wie ich den Checker starten kann, als würde er vom User oder von einer "asInvoker"-EXE gestartet werden.
ShellExecute funktioniert nicht, CreateProcess hat das gleiche Problem

Impersonation fällt flach, da ich den aktuellen User ja net nach seinem Passwort fragen kann.
Manuel
  Mit Zitat antworten Zitat