AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Active Directory - User zu einer Gruppe hinzufügen

Active Directory - User zu einer Gruppe hinzufügen

Ein Thema von hschmid67 · begonnen am 13. Jan 2023 · letzter Beitrag vom 18. Jan 2023
 
hschmid67

Registriert seit: 2. Jul 2012
Ort: Weilheim i. Obb.
75 Beiträge
 
Delphi 12 Athens
 
#1

Active Directory - User zu einer Gruppe hinzufügen

  Alt 13. Jan 2023, 11:16
Hallo zusammen,

wie kann ich einen AD-User zu einer Gruppe hinzufügen? Ich dachte, ich wäre schon sehr weit, denn mit folgendem Code geht manches Schreiben in Objekte des AD:

Delphi-Quellcode:
uses
  web.win.adstypes,
  activeds_tlb;

procedure WriteUserAttrib;
var
  lResourceStr: string;
  lADObj: IADsObject;
  lStr: string;
begin
  lResourceStr := 'LDAP://domain.de/cn=TestUser,ou=TEST,dc=domain,dc=de';

  ADsOpenObject(lResourceStr, lUsername, lPassword, 1, IADsObject, lADObj);

  lStr := lADObj.Get('comment'); // nur zum Testen
  Memo1.Lines.Add(lStr);

  lADObj.Put('comment', 'dummytext');
  lADObj.SetInfo;
end;
Das funktioniert für einfache Attribute ganz gut, aber ich scheitere am Attribut "memberOf". Das ist ein Array und ich kann die Werte damit auch auslesen, aber ich bekomme es nicht hin, das wieder zurückzuschreiben.

Selbst so funktioniert es nicht, also nur auslesen und gleiches gleich wieder reinschreiben:

Delphi-Quellcode:
var
  lMember: Variant;
begin
  lMember := lADObj.Get('memberOf');
  lADObj.PutEx(2, 'memberOf', lMember);
  lADObj.SetInfo;
end;
Fehler: "Der Server kann die Anforderung nicht ausführen."

Nun hab ich es von der anderen Seite her probiert, also ausgehend von der Gruppe:

Delphi-Quellcode:
var
  lResourceStr: string;
  lADObj: IADsGroup;
  lStr: string;
begin
  lResourceStr := 'LDAP://domain.de/cn=TestGruppe,ou=TEST,dc=domain,dc=de';

  ADsOpenObject(lResourceStr, lUsername, lPassword, 1, IADsGroup, lADObj);

  lStr := lADObj.Get('cn'); // nur zum Testen
  Memo1.Lines.Add(lStr);

  lADObj.Add('cn=TestUser,ou=TEST,dc=domain,dc=de');
  lADObj.SetInfo;
end;
Hier bekomme ich den ominösen OLE-Fehler 80005000.

Weiß jemand Rat? Ich möchte nur die Powershell vermeiden, alle anderen Wege direkt in Delphi sind willkommen.

Viele Grüße
Harald
Harald Schmid
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:12 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