The other was round, but this should unlock all layers, after that delete hidden layers should work.
// unlock all layers; // based on code to link layer masks by paul riggott; // 2014, use it at your own risk; #target "photoshop-70.032" app.bringToFront(); if(app.documents.length != 0) { unlockLayers(); }; ////// unlock layers ////// function unlockLayers(){ var ref = new ActionReference(); ref.putEnumerated( charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') ); var count = executeActionGet(ref).getInteger(charIDToTypeID('NmbL')) +1; var Names=[]; try{ activeDocument.backgroundLayer; var i = 0; }catch(e){ var i = 1; }; for(i;i<count;i++){ if(i == 0) continue; ref = new ActionReference(); ref.putIndex( charIDToTypeID( 'Lyr ' ), i ); var desc = executeActionGet(ref); var layerName = desc.getString(charIDToTypeID( 'Nm ' )); var Id = desc.getInteger(stringIDToTypeID( 'layerID' )); if(layerName.match(/^<\/Layer group/) ) continue; unlockLayer (i); } }; ////// unlock layer by index ////// function unlockLayer (idx){ selectLayerByIndex(idx, false); try { var desc = new ActionDescriptor(); var ref = new ActionReference(); ref.putIndex( charIDToTypeID( "Lyr " ), idx ); desc.putReference( charIDToTypeID('null'), ref ); var desc4 = new ActionDescriptor(); var desc5 = new ActionDescriptor(); var idprotectNone = stringIDToTypeID( "protectNone" ); desc5.putBoolean( idprotectNone, true ); var idlayerLocking = stringIDToTypeID( "layerLocking" ); desc4.putObject( idlayerLocking, idlayerLocking, desc5 ); desc.putObject( charIDToTypeID( "T " ), charIDToTypeID( "Lyr " ), desc4 ); executeAction( charIDToTypeID('setd'), desc, DialogModes.NO ); } catch (e) {alert (e)}; }; // by mike hale, via paul riggott; // http://forums.adobe.com/message/1944754#1944754 function selectLayerByIndex(index,add){ add = undefined ? add = false:add var ref = new ActionReference(); ref.putIndex(charIDToTypeID("Lyr "), index); var desc = new ActionDescriptor(); desc.putReference(charIDToTypeID("null"), ref ); if(add) desc.putEnumerated( stringIDToTypeID( "selectionModifier" ), stringIDToTypeID( "selectionModifierType" ), stringIDToTypeID( "addToSelection" ) ); desc.putBoolean( charIDToTypeID( "MkVs" ), false ); try{ executeAction(charIDToTypeID("slct"), desc, DialogModes.NO ); }catch(e){ alert(e.message); } };