Thema: Delphi IsAdmin und UAC

Einzelnen Beitrag anzeigen

Lyan

Registriert seit: 5. Aug 2011
188 Beiträge
 
#2

AW: IsAdmin und UAC

  Alt 21. Dez 2014, 14:59
"Returns TRUE if the user is a member of the Administrator's group; otherwise, FALSE."

Die Funktion macht alles richtig, sie gibt dir zurück ob der User der Admingruppe angehört, oder nicht.
Hab mal schnell was in notepad zusammengestellt.. Sag mal bescheid ob es so funktioniert.^^

EDIT:// So kam jetzt zum Testen.. Also hier die funktionierende Funktion.

Delphi-Quellcode:
function CheckAdmin : boolean;
var
   hTok : THandle;
   ELV : TOKEN_ELEVATION;
   sz : DWORD;
begin
   Result := false;
   // Kannst anstatt den Rückgabewert von GetCurrentProcess() natürlich ein anderes Processhandle angeben.
   if OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, hTok) then
   begin
      sz := sizeof(TOKEN_ELEVATION);
      if GetTokenInformation(hTok, TokenElevation, @ELV, sizeof(ELV), sz) then
      begin
         Result := Boolean(ELV.TokenIsElevated); // Admin == true^^
      end;
      if hTok <> 0 then
         // token wieder schließen falls OpenProcessToken
         // erfolgreich war
         CloseHandle(hTok);
   end;
end;
// if CheckAdmin then showmessage('Admin!');


EDIT:// Neuwutel.

Du solltest dir vorher auf msdn die Funktionen genau durchlesen, bevor du von irgendwelchem "die Funktion stößt an ihre Grenzen" redest, obwohl die Funktion nicht für dein Vorhaben geeignet ist.

Sie ist dafür da, um herauszufinden ob der angemeldete Benutzer in der Admingruppe ist. Z.B. gibt es ja den "UAC bypass".

IQ FSK > 130:
http://download.pureftpd.org/pub/misc/UAC.cpp

Da wird z.B. gezeigt wie man die autoelevation die im Explorer stattfindet wenn man auf "more details"(windoof 8) oder "alle brohzesse anzeigen" (windows 7) klickt. (musste ich hier mal erwähnen, ist echt interessant).

Der bypass ist nur möglich, wenn der User sich in der Gruppe "Administrator" befindet => da wäre deine Funktion dann perfekt geeignet für um vorher zu prüfen ob wir den bypass nutzen können.

Zu deiner anderen Frage:

Im Normalfall hat nur das Gastkonto Gastrechte, die Rechte sind aber ziemlich gering für den Gast... #NNostalgie

Hab ich eigtl. erwähnt dass ich Iraner bin? Nein? Warum auch?

Geändert von Lyan (21. Dez 2014 um 16:57 Uhr)
  Mit Zitat antworten Zitat