Registryzugriff auf HKCU des Benutzers als Admin in Vista

29/08/2007 - 19:02 von Jens Duttke | Report spam
Hallo!

Folgendes Problem (in Windows Vista):

Ich muss einige Werte in die Registry von Windows schreiben, genauer in die
Bereiche HKEY_CURRENT_USER und HKEY_LOCAL_MACHINE.
Um eventuellen Zugriffsproblemen auf HKEY_LOCAL_MACHINE aus dem Weg zu
gehen, habe ich den Code in eine zweite EXE gepackt, welche eine
Manifest-Ressource mit
trustInfo->requestedExecutionLevel->level=requireAdministrator enthàlt.
Der Anwender wàhlt also die entsprechende Funktion zum Schreiben der
Registry im "Hauptprogramm" aus, dann wird das zweite Programm gestartet, es
erscheint die Frage (von Vista) ob er sich als Administrator anmelden will
und daraufhin werden die Änderungen durchgeführt.
Soweit so gut - zumindest bei meiner Vista-Testumgebung und vielen anderen
Anwendern.

Ein Benutzer meldet nun allerdings das Problem, daß nach dem Erstellen des
Registryeintrages unter HKEY_CURRENT_USER, dieser bei Ihm nicht vorhanden
sei. Ein Protokoll der Zugriffe auf die Registry hat ergeben, daß alle
Zugriffe ohne Probleme erfolgten - der Schlüssel und die Werte
dementsprechend auch vorhanden sein müssten.

In Wirklichkeit sind sie auch da - allerdings nicht im
HKEY_CURRENT_USER-Bereich des Benutzers, sondern im Profil des
Administrators - weil die EXE ja mit Administratorrechten gestartet wird und
sich somit HKEY_CURRENT_USER auf das Administrator-Profil bezieht. (Wieso
das auf meinem Testsystem problemlos funktioniert, ist mir ein Ràtsel)

Nun bin ich auf der Suche nach einer Lösung für dieses Problem.
Die Werte müssen in "einem Ruck" in HKEY_CURRENT_USER und HKEY_LOCAL_MACHINE
geschrieben werden, es gibt also nicht die Möglichkeit die Eintràge unter
HKEY_LOCAL_MACHINE in der "Administrator-EXE" zu setzen und die anderen im
"Hauptprogramm" welches normale Benutzerrechte hat.

Hat jemand eine Idee wie ich vom Administrator-Benutzer aus herausfinden
kann, welcher Benutzer gerade "aktiv" ist um die notwendigen Schlüssel in
HKEY_USERS\SID-des-Benutzers schreiben zu können? Funktioniert das überhaupt
in jedem Fall, daß der Admin in den Registry-Bereich eines Benutzers
schreibt oder könnten Ihm dazu auch die notwendigen Rechte fehlen?

Oder hat jemand eine bessere Idee, wie das Ganze sauber realisiert werden
kann?

Danke schonmal im Voraus,
Jens
 

Lesen sie die antworten

#1 Jens Duttke
31/08/2007 - 16:51 | Warnen spam
Hallo!

Hat sich erledigt - ich habe eine Lösung gefunden.

Cu, Jens

Ähnliche fragen