AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Abfragen ob Process Adminrechte hat?
Thema durchsuchen
Ansicht
Themen-Optionen

Abfragen ob Process Adminrechte hat?

Ein Thema von Orbmu2k · begonnen am 27. Apr 2006 · letzter Beitrag vom 21. Aug 2015
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
EinsteinXXL

Registriert seit: 18. Aug 2015
8 Beiträge
 
#1

AW: Abfragen ob Process Adminrechte hat?

  Alt 21. Aug 2015, 23:06
hallo

ich wollte die funktion auch verwenden, jedoch findet meine IDE "SE_GROUP_ENABLED" nicht. Welche unit bzw. api muss ich denn bei uses eintragen? Habe schon google befragt, aber nichts richtiges gefunden.

Geändert von EinsteinXXL (21. Aug 2015 um 23:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Abfragen ob Process Adminrechte hat?

  Alt 21. Aug 2015, 23:09
Das sieht nach einer Konstanten aus. Eine schnelle Suche mit Google bringt Klarheit.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Abfragen ob Process Adminrechte hat?

  Alt 21. Aug 2015, 23:15
Delphi-Quellcode:
const
SE_GROUP_ENABLED = 4;
gruss
  Mit Zitat antworten Zitat
EinsteinXXL

Registriert seit: 18. Aug 2015
8 Beiträge
 
#4

AW: Abfragen ob Process Adminrechte hat?

  Alt 21. Aug 2015, 23:23
Danke, hast mir als Anfänger damit gut geholfen.
  Mit Zitat antworten Zitat
Benutzerbild von Orbmu2k
Orbmu2k

Registriert seit: 29. Nov 2004
Ort: Erfurt
254 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Abfragen ob Process Adminrechte hat?

  Alt 7. Jun 2006, 19:05
Also bis Win2k geh ich auch noch mit ... alle anderen haben sowieso verloren bei mir

Aber vielen dank auf jeden Fall nochmal, ich hab mich schon einige Wochen immermal durch irgendwelche Vista UAP(UAC) und Vista tauglichkeits Blogs geforstet aber in keine stand drin dass das SE_GROUP_ENABLED Flag der auschlaggebende Punkt ist.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#6

Re: Abfragen ob Process Adminrechte hat?

  Alt 8. Jun 2006, 09:21
Zitat von Orbmu2k:
in keine stand drin dass das SE_GROUP_ENABLED Flag der auschlaggebende Punkt ist.
Warum auch, der Bug ist in fast allen IsAdmin-Beispielen die man im Netz finden kann vorhanden (inklusive meinen alten Beispielen).
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Abfragen ob Process Adminrechte hat?

  Alt 8. Jun 2006, 09:27
Hier ist deine alte Version:
Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
// Procedure : GetAdminSid
// Author : NBe
// Comment :
function GetAdminSid: PSID;
const
  // bekannte SIDs ... (WinNT.h)
  SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5));
  // bekannte RIDs ... (WinNT.h)
  SECURITY_BUILTIN_DOMAIN_RID: DWORD = $00000020;
  DOMAIN_ALIAS_RID_ADMINS: DWORD = $00000220;
begin
  Result := nil;
  AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2,
    SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS,
    0, 0, 0, 0, 0, 0, Result);
end;

////////////////////////////////////////////////////////////////////////////////
// Procedure : IsAdmin
// Author : NBe
// Comment :
function IsAdmin: LongBool;
var
  TokenHandle : THandle;
  ReturnLength : DWORD;
  TokenInformation : PTokenGroups;
  AdminSid : PSID;
  Loop : Integer;
begin
  Result := False;
  TokenHandle := 0;
  if OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, TokenHandle) then
  try
    ReturnLength := 0;
    GetTokenInformation(TokenHandle, TokenGroups, nil, 0, ReturnLength);
    TokenInformation := GetMemory(ReturnLength);
    if Assigned(TokenInformation) then
    try
      if GetTokenInformation(TokenHandle, TokenGroups, TokenInformation,
        ReturnLength, ReturnLength) then
      begin
        AdminSid := GetAdminSid;
        for Loop := 0 to TokenInformation^.GroupCount - 1 do
        begin
          if EqualSid(TokenInformation^.Groups[Loop].Sid, AdminSid) then
          begin
            Result := True;
            Break;
          end;
        end;
        FreeSid(AdminSid);
      end;
    finally
      FreeMemory(TokenInformation);
    end;
  finally
    CloseHandle(TokenHandle);
  end;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#8

Re: Abfragen ob Process Adminrechte hat?

  Alt 8. Jun 2006, 09:51
Zitat von Luckie:
Hier ist deine alte Version:
Man lernt nie aus. Heutzutage würde ich die Funktion völlig anders implementieren.
Ich sehe keine Sinn darin, hier fehlerhaften Code zu posten. Es wäre hilfreicher, wenn sich jemand die Mühe macht und CheckTokenMembership nachprogrammiert (damit Windows NT 4.0 nicht ausgeschossen wird und die Leute verstehen, was die Funktion eigentlich macht).
  Mit Zitat antworten Zitat
Benutzerbild von Orbmu2k
Orbmu2k

Registriert seit: 29. Nov 2004
Ort: Erfurt
254 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Abfragen ob Process Adminrechte hat?

  Alt 9. Jun 2006, 01:11
@NicoDE:

So gerade die aktuelle Public Beta installiert und getestet ... das klappt jetzt wunderbar.
Hab deine Win2k Version genommen.

Vielen Dank nochmal
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Abfragen ob Process Adminrechte hat?

  Alt 9. Jun 2006, 01:14
Zitat von NicoDE:
Zitat von Luckie:
Hier ist deine alte Version:
Man lernt nie aus. Heutzutage würde ich die Funktion völlig anders implementieren.
Ich sehe keine Sinn darin, hier fehlerhaften Code zu posten.
Nun ja, dass der Code fehlrhaft sein soll, höre ich jetzt zum ersten mal. Und ich habe ihn gepostet, damit man dein Codefragement dort einfügen kann.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 13: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