Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Auslesen welcher User zu welcher Gruppe gehört?! (https://www.delphipraxis.net/2872-auslesen-welcher-user-zu-welcher-gruppe-gehoert.html)

f.r.e.s.h.d 11. Feb 2003 06:56


Auslesen welcher User zu welcher Gruppe gehört?!
 
Auslesen welcher User zu welcher Gruppe gehört?!

Kann mir hierzu jemand sagen, wie dieses funktioniert?
Die einzelnen User kann ich auslesen, nur die Gruppen
auszulesen bekmme ich nicht hin.

Vielen Danke schon mal im Vorraus!!!

f.r.e.s.h.d 11. Feb 2003 07:13

Ich müßte wissen wie ich herraus finden kann, welcher Benutzer zur
welcher Gruppe gehört und desweiteren, welche Gruppen überhaupt vorhanden sind!?

Luckie 11. Feb 2003 08:50

Mit NetLocalGroupEnum bekommst du alle Gruppen und mit NetUserGetGroups bekommst du alle Gruppen, in der der jeweilige Benutzer Mitglied ist.

f.r.e.s.h.d 11. Feb 2003 09:33

Vielen Dank!

Hast du vielleicht auch ein kl. Beispiel für mich?

Danke!

Luckie 11. Feb 2003 09:45

Die Netxxx-Funktionen funktionieren alle nach dem gleichen Prinzip. Wenn du also die Benutzer auslesen kannst, dann sollte das auch kein Problem sein.

f.r.e.s.h.d 11. Feb 2003 09:51

if NetLocalGroupEnum(nil, 0, FILTER_NORMAL_ACCOUNT, XXX, MAX_PREFERRED_LENGTH, dwEntriesRead, dwEntriesTotal) = NERR_SUCCESS then


prefmaxlen:
Preferred maximum length, in 8-bit bytes of returned data.

ich komme mit dieser Stelle nicht klar, was muß denn da rein?

Luckie 11. Feb 2003 09:58

Wo jetzt? Da wo bei dir die xxx stehen oder meinst du die Konstante, die hast du doch da schon stehen.

Bei den xxx kommt das hin, was du auch bei NetLocalUserEnum eingestetzt hast, nur eben für NetLocalGroupEnum.

f.r.e.s.h.d 11. Feb 2003 10:00

Sorry, ich meinte das XXX.

Ich habe das selbe hinein geschrieben, aber das funktioniert nicht.

[Fehler] Unit1.pas(58): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen

Luckie 11. Feb 2003 10:04

Der Datentyp muß natürlich auch stimmen. Poste doch mal etwas Code.

f.r.e.s.h.d 11. Feb 2003 10:19

Das hier war für die User:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  dwEntriesRead, dwEntriesTotal: DWORD;
  ui1, ui2 : Pointer;
  i : Integer;
begin
  if NetUserEnum(nil, 0, FILTER_NORMAL_ACCOUNT, ui1, MAX_PREFERRED_LENGTH, dwEntriesRead, dwEntriesTotal, nil) = NERR_SUCCESS then
  begin
    ui2 := ui1;
    for i := 0 to dwEntriesRead-1 do
    begin
      Listbox1.Items.Add(PUserInfo1(ui1)^.usri1_name);
      Inc(Integer(ui1), SizeOf(Pointer));
    end;
  end;
  NetAPIBufferFree(ui2);
end;

Und das soll für die Gruppen sein:
(Erstmal alle Gruppen anzeigen, später muß nach zu jedem Benutzer die Gruppe ermittelt werden.)

Delphi-Quellcode:
var
  dwEntriesRead, dwEntriesTotal, jo : DWORD;
  ui1, ui2 : Pointer;
  i : Integer;
begin
  if NetLocalGroupEnum(nil, 0, FILTER_NORMAL_ACCOUNT, ui1, MAX_PREFERRED_LENGTH, dwEntriesRead, dwEntriesTotal) = NERR_SUCCESS then
  begin
    ui2 := ui1;
    for i := 0 to dwEntriesRead-1 do
    begin
      Listbox1.Items.Add(PLOCALGROUPINFO0(ui1)^.lgrpi0_name);
      Inc(Integer(ui1), SizeOf(Pointer));
    end;
  end;
  NetAPIBufferFree(ui2);
end;
Code-Tages hinzugefügt - Luckie
Beim nächsten mal bitte selber machen.

Luckie 11. Feb 2003 10:27

Delphi-Quellcode:
var
  dwEntriesRead, dwEntriesTotal: DWORD;
  lgi01, lgi02 : Pointer;
  i : Integer;
begin
  lgi02 := nil;
  Listbox1.Clear;
  if NetLocalGroupEnum(nil, 0, lgi01, MAX_PREFERRED_LENGTH, dwEntriesRead, dwEntriesTotal, nil) = NERR_SUCCESS then
  begin
    lgi02 := lgi02;
    for i := 0 to dwEntriesRead-1 do
    begin
      Listbox1.Items.Add(PLocalGroupInfo0(lgi01)^.lgrpi0_name);
      Inc(Integer(lgi01), SizeOf(Pointer));
    end;
  end;
  NetAPIBufferFree(lgi02);
Nur aus Neugier: Was soll das eigentlich werden, wenn es fertig ist?

f.r.e.s.h.d 11. Feb 2003 10:30

:hello: :bounce1:


Ja, das funktioniert!!! Super!!! Danke!!!

Luckie 11. Feb 2003 10:37

Und was soll das nun werden, wenn es fertig ist?

f.r.e.s.h.d 11. Feb 2003 10:44

Weiß das sit ein bisschen nervig, hast du vielleciht auch einen Lösungsansatz für die Ermittlung der Gruppen des einzelnen Users?

So weit bin ich gekommen, aber diese Variablen machen mich voll wuschig! :)
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  dwEntriesRead, dwEntriesTotal: DWORD;
  lgi01, lgi02 : Pointer;
  i : Integer;
begin
  lgi02 := nil;
  Listbox1.Clear;
  if NetUserGetGroups(nil, lgi01(hier muß irgendwie der Name des Benutzers rein?!), FILTER_NORMAL_ACCOUNT, lgi01, MAX_PREFERRED_LENGTH, dwEntriesRead, dwEntriesTotal) = NERR_SUCCESS then
  begin
    lgi02 := lgi02;
    for i := 0 to dwEntriesRead-1 do
    begin
      Listbox1.Items.Add(PGROUPUSERSINFO0(lgi01)^.grui0_name);
      Inc(Integer(lgi01), SizeOf(Pointer));
    end;
  end;
  NetAPIBufferFree(lgi02);
end;
Code-Tages hinzugefügt - Luckie
Beim nächsten mal bitte selber machen

Luckie 11. Feb 2003 10:53

So erstmal, wir haben hier wunderschöne Code-Tags, bitte benutz die doch auch. So ist dein Quellcode kaum lesbar.

Zweitens: Sag mal, rätst du die Parameter, die die Funktion braucht oder was machst du da? Entweder kuckst du auf www.msdn.microsoft.com nach oder im PSDK (so fern du es hast und das solltest du für, das was du vorhast) oder du kuckst in den Jedi-Units nach (wobei das nicht ganz so aufschlußreich ist, da bekommt man nur den Datentyp.).

Letztendlich scheine ich ja doch dein ganzes Programm zu programmieren. :roll:

f.r.e.s.h.d 11. Feb 2003 10:59

danke

Luckie 11. Feb 2003 11:02

Hast du es den jetzt hinbekommen?
Delphi-Quellcode:
if NetUserGetLocalGroups(nil, 'Gast', 0, 0, lgi01, MAX_PREFERRED_LENGTH, dwEntriesRead, dwEntriesTotal) = NERR_SUCCESS then
So sieht es bei mir aus.

f.r.e.s.h.d 11. Feb 2003 11:06

Nee, ich war noch am schauen, aber dein Lösungsansatz funktioniert!

Ich danke dir, hoffe ich kann dir mal bei anderen Sachen helfen, mit denen ich besser klar komme! Danke! :!:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 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