Einzelnen Beitrag anzeigen

Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#1

Objekte im Active Directory verschieben

  Alt 26. Jul 2023, 15:23
Hallo,

ich habe folgenden Code mit dem es möglich sein soll Objecte im Active Directory zu verschieben.
Leider funktioniert das bei mir nicht, hat jemand eine Idee woran das liegen könnte ?

Code:
//if MoveADObject('LDAP://CN=Benutzer1,OU=Quellcontainer,DC=domain,DC=com', 'LDAP://OU=Zielcontainer,DC=domain,DC=com') then
  //ShowMessage('Das Objekt wurde erfolgreich verschoben.')
//else
  //ShowMessage('Fehler beim Verschieben des Objekts.');
//if MoveADObject('LDAP://CN=Computer1,OU=Quellcontainer,DC=domain,DC=com', 'LDAP://OU=Zielcontainer,DC=domain,DC=com') then
  //ShowMessage('Das Computerobjekt wurde erfolgreich verschoben.')
//else
  //ShowMessage('Fehler beim Verschieben des Computerobjekts.');
function MoveADObject(const ldapPath, newParentPath: string): Boolean;
var
  sourceObject: IADs;
  destinationParent: IADsContainer;
  destinationName: string;
begin
  Result := False;

  try
    // Bind zum Quellobjekt, das verschoben werden soll
    sourceObject := nil;
    ADsGetObject(PWideChar(WideString(ldapPath)), IADs, Pointer(sourceObject));

    // Bind zum Zielübergeordneten Container
    destinationParent := nil;
    ADsGetObject(PWideChar(WideString(newParentPath)), IADsContainer, Pointer(destinationParent));

    // Holen Sie den Namen des Quellobjekts
    destinationName := sourceObject.Name;

    // Verschieben Sie das Objekt in den Zielcontainer
    destinationParent.MoveHere(Format('LDAP://%s', [destinationName]), destinationName);

    Result := True;
  except
    // Fehlerbehandlung
  end;
end;
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat