Simple snippet on how to Unpublish/Publish nodes programmatically in Drupal 8.
juste add the following code inside a function where you want.
/**
* hook_cron
*/
function mymodule_cron()
{
$nids = \Drupal::entityQuery("node")
->condition('type', 'article')
->execute();
$storage_handler = \Drupal::entityTypeManager()->getStorage("node");
$nodes = $storage_handler->loadMultiple($nids);
foreach ($nodes as $node)
{
// Unpublish nodes
$node->setPublished(false);
// Publish nodes
// $node->setPublished(true);
$node->save();
}
}