AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Active Directory Benutzer anlegen
Thema durchsuchen
Ansicht
Themen-Optionen

Active Directory Benutzer anlegen

Offene Frage von "Sasuke"
Ein Thema von Sasuke · begonnen am 20. Mär 2008 · letzter Beitrag vom 8. Apr 2008
Antwort Antwort
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
949 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Re: Active Directory Benutzer anlegen

  Alt 28. Mär 2008, 12:51
Hi,


ist nicht schön. Wie ich eben gesehen habe (21:08 ; 28.03.08 ), erst einmal herzlich Willkommen in der DP!

Versuchen wir es mal so:
Delphi-Quellcode:
function CreateUser(ADsPath : WideString; // zB: 'LDAP://OU=NeueBenutzer,DC=test,DC=Local,DC=net' <- dies ist der Ort wo der User angelegt wird
                    FullName : WideString;
                    LastName : WideString;
                    FirstName : WideString;
                    UserPrinzipalName : WideString;
                    sAMAccountName : WideString;
                    Password : WideString;
                    var distinguishedName : WideString; // Rückgabe wird für weitere 'vereinfachte' Aktionen gebraucht
                    AccountDisabled : Boolean) : Boolean;
var
  destOU : IADsContainer; // Eine OU ist ein Container
  usr : IADsUser; // User-Object
begin
  destOU:= GetObject(ADsPath) As IADsContainer; // Verbindung zum Container herstellen
  try
    usr:= destOU.Create('user', 'CN=' + FullName) As IADsUser; // neues 'User'-Object erstellen, so etwas wie 'Form := TForm.Create(nil)'
    usr.Put('sAMAccountName', sAMAccountName); // Mindestents diese Werte übergeben
    usr.Put('userPrincipalName', UserPrinzipalName);
    usr.Put('givenName', FirstName);
    usr.Put('sn', LastName);
    usr.Put('displayName', FullName);
    usr.SetInfo; // Werte speichern
    usr.SetPassword(UserDat.Password); // Erst jetzt kann das Passwort gesetzt werden
    usr.SetInfo; // Passwort speichern
    distinguishedName := usr.Get('distinguishedName'); // distinguishedName holen
    usr.AccountDisabled:= usr.AccountDisabled; // je nachdem Konto sperren oder aktivieren
    Result := true;
  except
    Result := false;
    on e : Exception do // Falls es zu Fehlern kommt, anzeigen
      ShowMessage(e.Message);
  end;
end;

Die Routine sollte nun genau das machen wofür sie gedacht ist, einen Benutzer anlegen.
Einzige Voraussetzung: Übergabe gültiger Werte (der ADsPath muss exestieren).

Was sind 'vereinfachte' Aktionen? zB: Änderung des Familiennamens nach Heirat.
Delphi-Quellcode:
function ChangeLastName(ADspath : WideString; NewLastName : WideString) : Boolean;
var
  destOU : IADsContainer; // Eine OU ist ein Container
  usr : IADsUser; // User-Object
begin
   user := GetObject(ADsPath) As IADsUser;
   try
     user.PutEx(ADS_PROPERTY_CLEAR, 'sn', Null);
     user.SetInfo;
     user.Put('sn', NewLastName);
     user.SetInfo;
     Result := true;
  except
    Result := false;
    on e : Exception do // Falls es zu Fehlern kommt, anzeigen
      ShowMessage(e.Message);
  end;
end;
Aufruf: ChangeLastName(distinguishedName, 'Meyer');

Was die Freigabe der Interfaceobjecte angeht, Delphi kümmert sich darum.
Die Referenzen werden verworfen, sobald sie nicht mehr benötigt werden.
Um zu wissen was was ist, also 'sn' = Nachname, siehe MSDN.


Gruß
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:38 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