How to set posts to draft in bulk based on the content of the post

You could try to loop through all the posts and if the content contains the link, call this: change_post_status(get_the_ID(),'private'); or try draft if appropriate.

Register this function first:

function change_post_status($post_id,$status){
    $current_post = get_post( $post_id, 'ARRAY_A' );
    $current_post['post_status'] = $status;
    wp_update_post($current_post);
}