AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Zugriff auf Registry eines eingeschränkten Benutzerkontos mit Adminrechten
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf Registry eines eingeschränkten Benutzerkontos mit Adminrechten

Ein Thema von amigage · begonnen am 15. Dez 2011 · letzter Beitrag vom 7. Jan 2012
Antwort Antwort
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
274 Beiträge
 
Delphi 12 Athens
 
#1

AW: Zugriff auf Registry eines eingeschränkten Benutzerkontos mit Adminrechten

  Alt 16. Dez 2011, 14:12
Hallo Luckie,

okay, ich habe es jetzt mit Deiner Funktion GetAccountSid versucht. Problem ist nur, ich brauche hier den Benutzernamen.

Aber meine Funktion gibt mir immer nur den aktuellen Windows-Nutzernamen. In dem Fall den Admin-Nutzernamen.

Delphi-Quellcode:
function GetCurrentUserName: string;
const
  cnMaxUserNameLen = 254;
var
  sUserName: string;
  dwUserNameLen: DWORD;
begin
  dwUserNameLen := cnMaxUserNameLen - 1;
  SetLength(sUserName, cnMaxUserNameLen);
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen);
  Result := trim(sUserName);
end;
Wie erhalte ich den Nutzernamen des tatsächlich geöffneten Nutzers ohne Adminrechte?
  Mit Zitat antworten Zitat
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
274 Beiträge
 
Delphi 12 Athens
 
#2

AW: Zugriff auf Registry eines eingeschränkten Benutzerkontos mit Adminrechten

  Alt 18. Dez 2011, 13:46
Ich habe noch ein wenig im Netz recherchiert und bin auf die Mtx Unit gestoßen (MS Transaction Server Interface Unit).
Hier gibt es unter ISecurityProperty die Funktion GetDirectCallerSID() mit der ich - soweit wie ich das verstanden habe - die SID des originalen Prozesses auslesen kann.

Die Hilfe von Delphi ist nicht weiter aussagekräftig und hilft mir leider auch nicht weiter.
Im Netz habe ich einen Codeschnipsel gefunden, der aber auch nicht wirklich weiterhilft, da bei If Assigned(ObjectContext) then der Compiler den Fehler "Inkompatible Typen" ausgibt.
http://www.tek-tips.com/viewthread.cfm?qid=33539

Kann mir vielleicht einer einen Tipp geben, wie ich diese Funktion GetDirectCallerSID() aufzurufen habe?

Vielen Dank!
amigage
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Zugriff auf Registry eines eingeschränkten Benutzerkontos mit Adminrechten

  Alt 18. Dez 2011, 13:53
GetUserName gibt dir immer den Benutzer zurück in dessen Kontext der Prozess7Thread läuft von dem die Funktion aufgerufen wird. Und was ist für dich der "tatsächlich geöffnete Benutzer"? an einem System können mehrere Benutzer angemeldet sein. Interaktiv nur einer aber remote beliebig viele. Und tatsächlich sind sogar immer mehrere Bneutzer angemeldet. System zum Beispiel unter dem die meisten Dienste laufen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
274 Beiträge
 
Delphi 12 Athens
 
#4

AW: Zugriff auf Registry eines eingeschränkten Benutzerkontos mit Adminrechten

  Alt 19. Dez 2011, 08:43
Hallo Luckie,

Zitat:
Und was ist für dich der "tatsächlich geöffnete Benutzer"?
Ich meine den Benutzer, der in dem Moment verwendet wird. Meine Software braucht aber wegen einer anderen Funktion Adminrechte, muss aber dann auch auf die Registry des momentan sichtbar geöffneten Nutzers zugreifen. Mit RegOpenCurrentUser bekomme ich ja dann nur die Registrywerte eines temporären Nutzers.

Ich habe halt versucht, mit GetUserName den Benutzernamen herauszufinden, um Deine Funktion GetAccountSid verwenden zu können und somit den entsprechenden HKEY_USERS Pfad zu ermitteln.

Oder wie meintest Du die Aussage?

Zitat:
Lade den gewünschten benutzerspezifischen Registry Hive manuell selber.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Zugriff auf Registry eines eingeschränkten Benutzerkontos mit Adminrechten

  Alt 19. Dez 2011, 08:49
Und welcher Benutzer soll das sein?

Mir kommt dein Programmdesign immer verkorkster vor. Warum muss der Administrator Einstellungen vom Benutzer ändern? Und wie sieht es aus, wenn es mehrere Benutzer gibt, die das Programm benutzen? Unter HKLM kommen nur globale Einstellungen, die von den Benutzern nur gelesen werden sollen. Unter HKCU kommen dann die individuellen Einstellungen der Benutzer.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
274 Beiträge
 
Delphi 12 Athens
 
#6

AW: Zugriff auf Registry eines eingeschränkten Benutzerkontos mit Adminrechten

  Alt 19. Dez 2011, 09:28
Vielleicht erkläre ich es ein wenig besser.

Das Programm muss einen Windows Dienst stoppen. Dies kann es nur mit Adminrechten. Dann muss die Software Daten aus der Registry des Nutzers lesen, um auf bestimmte Dateien zugreifen und austauschen zu können. Diese Information findet sich nur in der Registry des angemeldeten Nutzers, also dem, der die Software von Hand gestartet hat. Dann soll der Dienst wieder gestartet werden.

Als Problem gestaltet es sich, wenn der Nutzer ein eingeschränkter Nutzer ist und die Adminrechte vom Adminkonto angefordert werden.

Wie würdest Du es machen?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Zugriff auf Registry eines eingeschränkten Benutzerkontos mit Adminrechten

  Alt 19. Dez 2011, 09:31
Unter wessen Account läuft der Dienst, ist es ein Dienst den Du im Source hast, bzw. den Du anpassen kannst?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz