Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Registry eines anderen Benutzers bearbeiten

  Alt 20. Feb 2017, 18:50
Als gutgläubiger Mensch könnte man meinen unter HKEY_USERS stünden die HKCU-Hives aller lokalen Benutzer. Es sind aber nur die eingeloggten. Ist ja auch sinnvoll, das spart Hauptspeicher.

Ich möchte nun in der Registry von mehreren lokalen Nutzern Änderungen vornehmen. Ich habe natürlich Adminrechte.

Ich sehe drei Möglichkeiten. Da ich noch nicht angefangen habe brauche ich keine technische Hilfe, ich möchte nur Rat welche der drei Möglichkeiten man nehmen sollte:
  1. NTUSER.dat der Nutzer über reg.exe einladen
  2. User Impersonation, dann LoadUserProfile(..)
  3. ActiveSetup

1) NTUSER.dat über reg.exe einladen
Über die reg.exe (fester Bestandteil von Windows) ließe sich (z.B hier beschrieben) die NTUSER.DAT eines anderen Nutzers irgendwo in die aktuelle Registry reinmappen. Ich könnte den Zweig dort bearbeiten und wieder entladen. Und wäre schon fertig.

2) User Impersonation, dann LoadUserProfile(..)
Da ich auch die Passwörter der entsprechenden Accounts hätte würde ich komplett über die WinAPI:
- Mittels LogOnUser das Token holen
- ImpersonateLoggedOnUser nehmen
- Dann mit LoadUserProfile den Hive einladen
- Meine Änderungen an HKEY_USERS\[SID] vornehmen
- Und später wieder mit UnloadUserProfile entladen


3) ActiveSetup
Dies scheint genau dasd zu sein was ich suche. Allerdings ist das nirgendwo von Microsoft dokumentiert, es gibt nur diesen halb-offiziellen Blog-Beitrag. Es ist ein Eintrag in HKLM der bei jedem Benutzer (anscheinend einmalig) nach dem nächsten Login ausgeführt wird. Hier könnte man die Änderung in eine eigene .exe auslagern die dann einmalig ausgeführt wird.


Ich persönlich bin für Lösung zwei, aber vielleicht gibt es ja schlaue Gründe für etwas anderes?
  Mit Zitat antworten Zitat