Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Alle User auslesen (https://www.delphipraxis.net/35435-alle-user-auslesen.html)

PierreB 7. Dez 2004 08:58


Alle User auslesen
 
Moin leutz,

mit folgendem Source lese ich den aktuell eingeloggten Usernamen aus:
Code:
function GetUsername: String;
var
  Buffer: array[0..255] of Char;
  Size: DWord;
begin
  Size := SizeOf(Buffer);
  if not Windows.GetUserName(Buffer, Size) then
    RaiseLastOSError; //RaiseLastWin32Error; {Bis D5};
  SetString(Result, Buffer, Size - 1);
end;
wie kann ich aber nun alle auf dem computer-befindlichen User (also deren Kontonamen) auslesen ?

Sharky 7. Dez 2004 09:01

Re: Alle User auslesen
 
Zitat:

Zitat von delphman
...wie kann ich aber nun alle auf dem computer-befindlichen User (also deren Kontonamen) auslesen ?

Hai delphman,

schaue Dir doch mal den XPUserManager auf der Homepage von Luckie an.

Alexander 7. Dez 2004 09:03

Re: Alle User auslesen
 
Hi,
da würde ich mal direkt Luckie fragen, ob er da ein Stück aus seinem UserManager zur Verfügung stellt ;)

PierreB 7. Dez 2004 09:08

Re: Alle User auslesen
 
ja den xpusermanager hab mir mir schonma angeguckt, werd aber aus dem source nicht so richtig schlau ! ;)


luckie, könntest du mir bitte mal die function/procedure geben mit der man alle konten auslesen kann ?

*ganznettfrag*

Luckie 7. Dez 2004 13:26

Re: Alle User auslesen
 
Die Unit liegt doch dabei. Heißt NTUser.pas. Da ist alles drinne.

PierreB 7. Dez 2004 13:30

Re: Alle User auslesen
 
also mit Prozedur 'GetUserGroups' & 'GetMembersInGroup', oder ?

CalganX 7. Dez 2004 13:33

Re: Alle User auslesen
 
Hi,
ich verweise mal auf die Code-Library: [cl]"Alle lokalen User auflisten"[/cl]. :zwinker:

Chris

Luckie 7. Dez 2004 13:37

Re: Alle User auslesen
 
Was willst du denn jetzt? Alle Benutzer, alle vorhandenen Benutzergruppen oder alle Benutzer einer gegebenen Gruppe? Also wenn du alle Benutzer willst, dann würde ich es mit EnumUsers probieren. ;)

PierreB 7. Dez 2004 13:39

Re: Alle User auslesen
 
Ich möchte alle Benutzer ! Gut ich probiers mit enumuser aus,


thanx

Assarbad 7. Dez 2004 13:55

Re: Alle User auslesen
 
Alternativ per WMI im WinNT://-Namespace auf User-Objekte filtern. Kommt halt immer drauf an, was man machen will ;)

mh166 7. Dez 2004 20:13

Re: Alle User auslesen
 
Zitat:

Zitat von Assarbad
Alternativ per WMI im WinNT://-Namespace auf User-Objekte filtern. Kommt halt immer drauf an, was man machen will ;)

Hö? Wie genau meinst du denn das jetzt? Kann man das auch so in den Explorer eingeben? Oder wie?

mfg, mh166

Assarbad 7. Dez 2004 20:22

Re: Alle User auslesen
 
Zitat:

Zitat von mh166
Zitat:

Zitat von Assarbad
Alternativ per WMI im WinNT://-Namespace auf User-Objekte filtern. Kommt halt immer drauf an, was man machen will ;)

Hö? Wie genau meinst du denn das jetzt? Kann man das auch so in den Explorer eingeben? Oder wie?

Nope, WMI ist auch nicht 100% korrekt. Exakter wäre: ADSI.

Dieser Namespace (oder "ADSI Provider") hat mit den Protokollhandlern (ftp:, gopher:, http: etc) nichts zu tun.

Mehr findest du (hoffentlich) unter: MSDN-Library durchsuchenADSI Service Providers (so ist es zumindest im PSDK). Auch im MS ScriptCenter findet sich einiges an Bsp. Wenn du Fragen zu LDAP und WinNT hast, kann ich auch gern Perl-Scripte zur Verfügung stellen - wir benutzen das in Sachen Administration (zB auflisten aller inaktiven Benutzer usw).

http://msdn.microsoft.com/library/en..._providers.asp
http://msdn.microsoft.com/library/de...about_adsi.asp
http://msdn.microsoft.com/library/de...namespaces.asp

f4_tim 16. Dez 2004 21:46

Re: Alle User auslesen
 
Man kann doch auch ADSI über ein ADO Query durchsuchen... So sollte man auch an alle Nutzer kommen!

Hier stehts beschrieben...
http://www.agnisoft.com/ADSI/Conf2000/3132.htm

Assarbad 16. Dez 2004 22:16

Re: Alle User auslesen
 
Zitat:

Zitat von f4_tim
Man kann doch auch ADSI über ein ADO Query durchsuchen... So sollte man auch an alle Nutzer kommen!

Hier stehts beschrieben...
http://www.agnisoft.com/ADSI/Conf2000/3132.htm

Das geht aber, soweit mir bekannt, nicht mit dem WinNT:// ADSI-provider, sondern nur mit dem LDAP://-provider. Ich persönlich finde diese Form (ADO) des Zugriffs komplizierter. Ist aber sicher Geschmackssache.

f4_tim 16. Dez 2004 22:24

Re: Alle User auslesen
 
Stimmt, also auf MSDN stehen auch nur LDAP Bespiele ... Hatte bisher sowas nur für's Active Directory gebraucht und da geht's wirklich super... :)

Assarbad 16. Dez 2004 22:36

Re: Alle User auslesen
 
Zitat:

Zitat von f4_tim
Stimmt, also auf MSDN stehen auch nur LDAP Bespiele ... Hatte bisher sowas nur für's Active Directory gebraucht und da geht's wirklich super... :)

Jupp, hat alles Vor- und Nachteile. Das Problem des WinNT://-providers ist zB, daß diverse Einstellungen des Userprofils nicht unterstützt werden (Email-Adresse usw). Dafür ist der WinNT://-provider aber auf Windows NT/2000/XP schon in der Professional (NT Workstation) Variante verfügbar.


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