uses
SysUtils, JwaWindows, JwaActiveDs, JwaAdsTlb, ComObj;
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
if ADsGetObject(PWideChar(WideString(ldapPath)), IADs, Pointer(sourceObject)) = S_OK then
begin
try
// Bind zum Zielübergeordneten Container
if ADsGetObject(PWideChar(WideString(newParentPath)), IADsContainer, Pointer(destinationParent)) = S_OK then
begin
try
// 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;
finally
destinationParent := nil; // Freigeben des Zielübergeordneten Containers
end;
end
else
ShowMessage('Zielübergeordneter Container konnte nicht gefunden werden.');
finally
sourceObject := nil; // Freigeben des Quellobjekts
end;
end
else
ShowMessage('Quellobjekt konnte nicht gefunden werden.');
except
on E:
Exception do
begin
ShowMessage('Fehler beim Verschieben des Objekts: ' + E.Message);
end;
end;
end;