Autor Beitrag
noNeed 4 aNick
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mi 30.11.05 12:39 
Hi zusammen,

ich schreib gerade an nem Programm, dass u.a. die an einem PC registrierten Benutzer und Benutzergruppen auflisten soll.
Ich hab jetzt gestern den halben Abend damit verbracht, in msdn nach passenden APIs zu suchen, hab aber nix, bzw. nix richtig funktionierendes gefunden.

Auch ein Scan meiner Registry war eher sinnlos, denn die einzigen sinnvollen Keys, die ich im netz gefunden hatte waren unter 'HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ ProfileList'.
Dieser 'Key-Ordner' scheint mir aber sehr zweifelhaft, da er zum einen Profile beinhaltet, die ich schon recht lange nicht mehr auf meinem PC habe und zum anderen Profile wie 'Gast' nicht beinhält.

Ich hab schon überlegt, ob es nur als Administrator möglich ist, diese Informationen zu erhalten (bin auf meiner Maschine normalerweise nur Hauptbenutzer), doch dann hab ich beim rumsurfen im Netz folgendes entdeckt:

cmd öffnen
->net user
gibt die Benutzer auf dem PC(bzw. der Domäne vermute ich) aus
->net user [username]
gibt fast intime Details über den Benutzer aus ;)

->net localgroups
dasselbe mit den Gruppen
-> net localgroups [gruppe]
listet die User der Gruppe auf

Ich war echt überrascht, ich hatte zumindest gewisse Restriktionen erwartet, aber ich kann zB auslesen, wann der Administrator zuletzt das PW geändert hat - ok,ok is nich so böse, nennt mich naiv, aber fand ich trotzdem unerwartet :P

Naja, jedenfalls bin ich jetzt wieder davon überzeugt, dass es eine API o.ä. dafür geben muss, denn die net.exe zieht sich das ja auch nicht ausm hut...

Die net.exe auszuführen und den Output abzufangen kommt jedoch nicht in Frage, da das Programm auf meheren Plattformen laufen soll. Schon unter 2k und XP gibt es Unterschiede bei der Ausgabe der Benutzer und ich habe ernste Zweifel, ob der net Befehl in dieser Art in den 9x-er Versionen implementiert gewesen ist.

Also hat jemand noch ne Idee?

thx In Advance
Alex
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 30.11.05 14:07 
Meinst du so was: www.delphi-forum.de/...st+fertig_31742.html

Welche Funktionen brauchst du genau? Ich überarbeite gerade die Unit zu dem Programm, deswegen ist sie momentan offline. Wenn du mir sagst, was du genau brauchst, kann ich dir das rauskopieren oder so.

Ansonsten guck mal hier:
Suche im MSDN NETUSERENUM: Alle Benutzer auflisten
Suche im MSDN NETUSERGETGROUPS: Gruppen zu denen der Benutzer gehört
Suche im MSDN NETLOCALGROUPENUM: Auflisten aller Gruppen (lokal, auch remote)
Suche im MSDN NETGROUPENUM: Auflisten aller Gruppen (global {Active Directory}, auch remote)

Die Funktionen sind alle in der Netapi32.dll enthalten. Die musst du dir selber importieren und deklarieren. Oder du nimmst die JEDI Headerübersetzungen.

user profile iconnoNeed 4 aNick hat folgendes geschrieben:
und ich habe ernste Zweifel, ob der net Befehl in dieser Art in den 9x-er Versionen implementiert gewesen ist.

Da Windows 9x keine Benutzerverwaltung kennt, existieren dort diese API Funktionen auch nicht. Sollte dein Programm auch Funktionen enthalten, die unter Consumer Windows sinnvoll sind, wird dir nichts anderes übrigbleiben, als die obigen API Funktionen dynamisch zu importieren (LoadLibary, GetProcAddress), damit es unter Consumer Windows überhaupt startet.
noNeed 4 aNick Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mi 30.11.05 14:29 
Hi,
danke für die schnelle Antwort...

Naja, soviel wie dein Usermgr muss mein Programm nicht können. Es geht eher um das auslesen von System- und Hardwareinformationen.
Das mit NETUSERENUM und NETLOCALGROUPENUM gefällt mir sehr gut, werd ma schaun ob ich die einsetzen kann - die JEDI Headers müssn hier noch irgendwo aufm PC rumfliegen :)

Ich meld mich dann, wenn's klappt - oder wenn's nicht klapp XD

Gab's bei 9x keine Benutzerverwaltung? Ich hatte in Erinnerung, dass man sich immer toll einloggen konnte und so stuff...Aber das is ja jetzt auch schon paar Jährchen her und damals hab ich mich doch eher um Command&Conquer2 gekümmert anstatt um LogIns ;)

Bye
Alex