Announcement

Collapse
No announcement yet.

Liste aller Benutzer einer Domäne oder ADS

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Liste aller Benutzer einer Domäne oder ADS

    Hallo ich möchte eine Liste aller im Netzwerk oder auch Local, befindlichen benutzer haben.
    Hat jemand eine Idee wie man auf den Benutzermanager zugreifen kann. Ich benötige Beipiel mit Quelltext, da ich dieses gern in einer eigenen Komponente einbinden möchte!

  • #2
    Hallo,

    für den Fall des Zugriffs über ADSI demonstriert das folgende Beispiel den Weg, die vorhandenen Benutzer für den Rechner <i>WinNT://D7-700</i> anzuzeigen bzw. neu anzulegen:
    <pre>
    <font color="#003399"><i>{ ************************************************** *******************
    Autor : Andreas Kosch
    Compiler : Delphi 5 UpdatePack#1
    Betriebssystem : Windows 2000
    Datum : 11.08.2000
    Beschreibung : ADSI mit Delphi 5: Benutzer auslesen/anlegen
    ************************************************** ******************** }</i></font>

    <b>unit</b> ADSI_5Frm;

    <b>interface</b>

    <b>uses</b>
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, ComCtrls, ActiveDS_TLB;

    <b>type</b>
    TForm1 = <b>class</b>(TForm)
    StatusBar1: TStatusBar;
    GroupBox1: TGroupBox;
    EditObj: TEdit;
    ButtonConnect: TButton;
    GroupBox2: TGroupBox;
    ListBoxUser: TListBox;
    ButtonRefresh: TButton;
    ButtonAddUser: TButton;
    EditNewUser: TEdit;
    <b>procedure</b> ButtonConnectClick(Sender: TObject);
    <b>procedure</b> ButtonRefreshClick(Sender: TObject);
    <b>procedure</b> ButtonAddUserClick(Sender: TObject);
    <b>private</b>
    <font color="#003399"><i>{ Private-Deklarationen }</i></font>
    FADSCont : IADsContainer;
    <b>public</b>
    <font color="#003399"><i>{ Public-Deklarationen }</i></font>
    <b>end</b>;

    <b>var</b>
    Form1: TForm1;

    <b>implementation</b>

    <font color="#003399"><i>{$R *.DFM}</i></font>

    <b>uses</b> ComObj, ActiveX;

    <font color="#003399"><i>// ADSI-Hilfsfunktion als Ersatz für die VBScript-Funktion GetObject</i></font>
    <b>function</b> ADsGetObject(lpszPathName: PWideChar;
    <b>const</b> riid: TIID;
    out obj): HResult; <b>stdcall</b>; external <font color="#9933CC">'activeds.dll'</font>;

    <b>procedure</b> TForm1.ButtonConnectClick(Sender: TObject);
    <b>var</b>
    swObj : WideString;
    <b>begin</b>
    swObj := EditObj.Text;
    OleCheck(ADsGetObject(PWideChar(swObj), IID_IADsContainer, FADSCont));
    StatusBar1.SimpleText := <font color="#9933CC">'ADsGetObject war erfolgreich.'</font>;
    ButtonRefresh.Enabled := True;
    ButtonAddUser.Enabled := True;
    <b>end</b>;

    <b>procedure</b> TForm1.ButtonRefreshClick(Sender: TObject);
    <b>var</b>
    sUser : <b>String</b>;
    aEnum : IEnumVariant;
    vObj : OLEVariant;
    aADs : IAds;
    aADSUser : IADsUser;
    iCelt : LongWord;
    <b>begin</b>
    ListBoxUser.Items.Clear;
    aEnum := FADSCont._NewEnum <b>as</b> IEnumVariant;
    <b>while</b> (aEnum.Next(1, vObj, iCelt) = S_OK) <b>do</b>
    <b>begin</b>
    aADs := IUnknown(vObj) <b>as</b> IAds;
    <b>if</b> aADs.Class_ = <font color="#9933CC">'User'</font> <b>then</b>
    <b>begin</b>
    aADSUser := aADs <b>as</b> IAdsUser;
    sUser := Format(<font color="#9933CC">'%s (%s)'</font>, [aADSUser.Name + Chr(9),
    aADSUser.Description]);
    ListBoxUser.Items.Add(sUser);
    <b>end</b>;
    <b>end</b>;
    <b>end</b>;

    <b>procedure</b> TForm1.ButtonAddUserClick(Sender: TObject);
    <b>var</b>
    swNewUserName : WideString;
    swDescription : WideString;
    aADSUser : IADsUser;
    <b>begin</b>
    swNewUserName := EditNewUser.Text;
    swDescription := <font color="#9933CC">'Benutzer wurde von ADSI_5.EXE anlegt.'</font>;
    aADSUser := FADSCont.Create(<font color="#9933CC">'user'</font>, swNewUserName) <b>as</b> IADsUser;
    aADSUser.Set_Description(swDescription);
    aADSUser.SetInfo;
    ButtonRefreshClick(self);
    <b>end</b>;

    <b>end</b>.
    </pre&gt

    Comment

    Working...
    X