Principled python script for selected object
The following code iterates through all selected objects and their respective materials found in the material slots. If a Principled BSDF node is found in the material, the Specular and Metallic properties are set to zero and links to Alpha and Normal are removed.

Be aware that every material will be fixed that is present in the selected objects' material slots. If that includes a material that is also assigned to an unselected object, that change will affect the unselected object as well.

import bpy


def remove_links(socket: bpy.types.NodeSocket, node_tree: bpy.types.NodeTree):
    """Remove all links from or to the given socket"""
    for link in socket.links:
        node_tree.links.remove(link)


def fix_node(node: bpy.types.Node, node_tree: bpy.types.NodeTree):
    """Adjust the properties if the node is a Principled BSDF"""
    if node.type == 'BSDF_PRINCIPLED':
        node.inputs['Specular'].default_value = 0.0
        node.inputs['Metallic'].default_value = 0.0
        remove_links(node.inputs['Alpha'], node_tree)
        remove_links(node.inputs['Normal'], node_tree)


def fix_material(material: bpy.types.Material):
    """Fix the nodes of the given material"""
    for node in material.node_tree.nodes:
        fix_node(node, material.node_tree)


def fix_selected():
    """Fix the materials of the selected objects"""
    for object in bpy.context.selected_objects:
        for material_slot in object.material_slots:
            fix_material(material_slot.material)

if __name__ == "__main__":
    fix_selected()