If you need to change the owner of objects in bulk you can use the following custom sweep action.

importPackage(java.lang);
importClass(java.lang.System);
importPackage(Packages.com.filenet.api.sweep);
importPackage(Packages.com.filenet.api.property);
importPackage(Packages.com.filenet.api.security);
importPackage(Packages.com.filenet.api.core);
importPackage(Packages.com.filenet.api.constants);
importPackage(Packages.com.filenet.api.engine);

function onPolicySweep(SweepObject, SweepPolicy, SweepItems){
}

function onSweep(sweepObject, sweepItems){

	// Neuer Owner für alle Objekte
	var newOwner = 'bjust@p8.tta';
	
	// OPTIONAL: Nur bestimmte alte Owner ersetzen (null = alle Owner ändern)
	// var oldOwnersToReplace = ['olduser1@p8.tta', 'olduser2@p8.tta'];
	var oldOwnersToReplace = null; // null = ALLE Owner werden geändert

	var hcc = HandlerCallContext.getInstance();
	hcc.traceDetail("Entering ChangeOwnerHandler.onSweep");
	hcc.traceDetail("sweepObject = " + sweepObject.getProperties().getIdValue(PropertyNames.ID) + " sweepItems.length = " + sweepItems.length);
	hcc.traceDetail("Neuer Owner: " + newOwner);

	ii = 0;
	for (ii = 0; ii < sweepItems.length; ii++){

		if (hcc != null && hcc.isShuttingDown()){
			throw new EngineRuntimeException(
				ExceptionCode.E_BACKGROUND_TASK_TERMINATED,
				this.constructor.name + " is terminating prematurely because the server is shutting down"
			);
		}

		var item = sweepItems[ii].getTarget();
		var msg = "sweepItems[" + ii + "]= " + item.getProperties().getIdValue("ID");
		hcc.traceDetail(msg);

		try{
			var CEObject = castToCorrectType(item, hcc);

			if (CEObject == null) {
				hcc.traceDetail("   WARNUNG: Unbekannter Objekttyp, wird übersprungen");
				sweepItems[ii].setOutcome(SweepItemOutcome.SKIPPED, "Unbekannter Objekttyp");
				continue;
			}

			var result = changeOwner(CEObject, newOwner, oldOwnersToReplace, hcc);

			if (result.changed) {
				sweepItems[ii].setOutcome(SweepItemOutcome.PROCESSED, 
					"Owner geändert von '" + result.oldOwner + "' zu '" + newOwner + "'");
			} else {
				sweepItems[ii].setOutcome(SweepItemOutcome.PROCESSED, result.reason);
			}

		}catch (ioe){
			sweepItems[ii].setOutcome(SweepItemOutcome.FAILED, "ChangeOwnerHandler: " + ioe.rhinoException.getMessage());
			hcc.traceDetail("FAILED " + ioe.rhinoException.getMessage());
		}
	}

	hcc.traceDetail("Exiting ChangeOwnerHandler.onSweep");
}


/*
 * Erforderliche Properties für den Sweep
 */
function getRequiredProperties()
{
	var pnames = ['Id', 'Owner'];
	return pnames.toString();
}


/*
 * Ändert den Owner des Objekts.
 * 
 * @param ceObject - Das FileNet-Objekt (Document, Folder oder CustomObject)
 * @param newOwner - Der neue Owner (z.B. 'admin@p8.tta')
 * @param oldOwnersToReplace - Array mit alten Ownern die ersetzt werden sollen, 
 *                             oder null um ALLE Owner zu ändern
 * @param hcc - HandlerCallContext für Logging
 * @return Object mit {changed: boolean, oldOwner: string, reason: string}
 */
function changeOwner(ceObject, newOwner, oldOwnersToReplace, hcc) {

	var result = {
		changed: false,
		oldOwner: null,
		reason: null
	};

	try {
		// Aktuellen Owner holen
		var currentOwner = ceObject.get_Owner();
		result.oldOwner = currentOwner;

		if(hcc) hcc.traceDetail("  Aktueller Owner: " + currentOwner);
		if(hcc) hcc.traceDetail("  Neuer Owner: " + newOwner);

		// Prüfen ob Owner bereits korrekt ist
		if (currentOwner != null && currentOwner.toLowerCase() === newOwner.toLowerCase()) {
			if(hcc) hcc.traceDetail("  Owner ist bereits korrekt gesetzt");
			result.reason = "Owner bereits korrekt: " + currentOwner;
			return result;
		}

		// Wenn Filter gesetzt ist, prüfen ob aktueller Owner geändert werden soll
		if (oldOwnersToReplace != null && oldOwnersToReplace.length > 0) {
			var shouldReplace = false;
			for (var i = 0; i < oldOwnersToReplace.length; i++) {
				if (currentOwner != null && 
				    currentOwner.toLowerCase() === oldOwnersToReplace[i].toLowerCase()) {
					shouldReplace = true;
					break;
				}
			}

			if (!shouldReplace) {
				if(hcc) hcc.traceDetail("  Owner '" + currentOwner + "' ist nicht in der Liste zu ersetzender Owner");
				result.reason = "Owner '" + currentOwner + "' nicht in Filterliste";
				return result;
			}
		}

		// Owner ändern
		ceObject.set_Owner(newOwner);
		ceObject.save(com.filenet.api.constants.RefreshMode.NO_REFRESH);

		if(hcc) hcc.traceDetail("  Owner erfolgreich geändert von '" + currentOwner + "' zu '" + newOwner + "'");

		result.changed = true;
		result.reason = "Erfolgreich geändert";
		return result;

	} catch(e) {
		if(hcc) hcc.traceDetail("  Fehler beim Ändern des Owners: " + e.message);
		throw e;
	}
}


/*
 * Erkennt den Objekttyp anhand von instanceof und castet entsprechend.
 * Unterstützt: Document, Folder, CustomObject
 */
function castToCorrectType(item, hcc) {
	try {
		var className = item.getClassName();
		if(hcc) hcc.traceDetail("   Objektklasse: " + className);

		if (item instanceof com.filenet.api.core.Document) {
			if(hcc) hcc.traceDetail("   Typ erkannt: Document");
			return com.filenet.api.core.Document(item);

		} else if (item instanceof com.filenet.api.core.Folder) {
			if(hcc) hcc.traceDetail("   Typ erkannt: Folder");
			return com.filenet.api.core.Folder(item);

		} else if (item instanceof com.filenet.api.core.CustomObject) {
			if(hcc) hcc.traceDetail("   Typ erkannt: CustomObject");
			return com.filenet.api.core.CustomObject(item);

		} else {
			if(hcc) hcc.traceDetail("   instanceof-Prüfung fehlgeschlagen, versuche Fallback...");
			return castByClassName(item, className, hcc);
		}

	} catch(e) {
		if(hcc) hcc.traceDetail("   Fehler beim Typ-Casting: " + e.message);
		return null;
	}
}


/*
 * Fallback: Casting über die Klassenhierarchie (für Subklassen).
 */
function castByClassName(item, className, hcc) {
	try {
		var classDesc = item.get_ClassDescription();

		while (classDesc != null) {
			var superClassName = classDesc.get_SymbolicName();
			if(hcc) hcc.traceDetail("   Prüfe Basisklasse: " + superClassName);

			if (superClassName === "Document") {
				if(hcc) hcc.traceDetail("   Fallback Typ erkannt: Document (Subklasse von " + className + ")");
				return com.filenet.api.core.Document(item);

			} else if (superClassName === "Folder") {
				if(hcc) hcc.traceDetail("   Fallback Typ erkannt: Folder (Subklasse von " + className + ")");
				return com.filenet.api.core.Folder(item);

			} else if (superClassName === "CustomObject") {
				if(hcc) hcc.traceDetail("   Fallback Typ erkannt: CustomObject (Subklasse von " + className + ")");
				return com.filenet.api.core.CustomObject(item);

			} else if (superClassName === "IndependentlyPersistableObject" || superClassName === "RepositoryObject") {
				break;
			}

			classDesc = classDesc.get_SuperclassDescription();
		}

	} catch(e) {
		if(hcc) hcc.traceDetail("   Fehler beim Fallback-Casting: " + e.message);
	}

	return null;
}

You need to replace the parameter „var newOwner = ‚bjust@p8.tta‘;“ with you required new user. You can also modify the owner based on the value of previous set user. Therefore change the following parameter „var oldOwnersToReplace = null; with the required user to change.