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);
}
};