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 Succeeded(ADsGetObject(PWideChar(ldapPath), IID_IADs, Pointer(sourceObject))) then
begin
try
// Bind zum Zielübergeordneten Container
if Succeeded(ADsGetObject(PWideChar(newParentPath), IID_IADsContainer, Pointer(destinationParent))) then
begin
try
// Holen Sie den Namen des Quellobjekts
destinationName := sourceObject.Name;
// Verschieben Sie das Objekt in den Zielcontainer
destinationParent.MoveHere(WideString(ldapPath), WideString(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;