Guida alle tecnologie

Pianificare script Python con Task Scheduler

7 min read Automazione Aggiornato 19 Sep 2025
Pianificare script Python con Task Scheduler
Pianificare script Python con Task Scheduler

Interfaccia di Task Scheduler con esempio di script Python pianificato

Invece di avviare manualmente script Python per attività ripetitive, conviene farli partire automaticamente all’orario desiderato. Windows Task Scheduler consente di pianificare attività che si eseguono automaticamente in orari o intervalli specifici — lo stesso vale per gli script Python.

Buono a sapersi: se usi macOS, consulta la guida su come eseguire uno script Python su Mac (launchd / cron). Qui ci concentriamo su Windows.

Pianificare uno script Python direttamente in Task Scheduler

Task Scheduler permette di eseguire uno script Python giornalmente, settimanalmente o con una pianificazione personalizzata. Per aprirlo, premi Win + R, digita taskschd.msc e premi Invio.

Finestra per aprire Task Scheduler

  1. Vai alla scheda Azioni e clicca su Create Basic Task… per aprire la procedura guidata di creazione di una attività.

Creare una nuova attività di base

  1. Assegna un nome alla task, aggiungi una descrizione chiara e clicca su Avanti.

Fornire nome e descrizione all'attività

  1. Scegli quando far partire l’attività (Daily, Weekly, One time, ecc.) e premi Avanti.

Selezionare quando avviare l'attività

  1. Imposta la data/ora di inizio e procedi. Alla voce Action, seleziona Start a program e clicca Avanti.

Selezionare l'azione da eseguire

  1. Nel campo Program/script inserisci il percorso dell’eseguibile di Python (ad es. C:\Python39\python.exe). Nel campo Add arguments inserisci il percorso completo dello script Python, ad esempio "C:\path\to\script.py".

Specificare il percorso dell'eseguibile Python

  1. Verifica le impostazioni e clicca Finish per creare la task.

Rivedere le impostazioni dell'attività

Lo script Python è ora programmato e verrà eseguito automaticamente secondo la pianificazione scelta.

Metodo alternativo: pianificare lo script usando un file batch

Molti preferiscono usare un file batch (.bat) perché semplifica i percorsi e permette di aggiungere logging o condizioni prima dell’esecuzione. Apri Notepad e incolla questo codice:

@echo off
"C:\Path\to\python.exe" "C:\Path\to\your_script.py"
pause

Sostituisci i percorsi col percorso del tuo Python e del tuo script. Il comando pause evita che la finestra si chiuda immediatamente, utile per debug locale.

Se non conosci il percorso di Python, apri il Prompt dei comandi e digita:

where python

Finestra che mostra il percorso di Python rilevato

Se compaiono più percorsi, scegli quello dell’interprete che vuoi usare (es. una specifica installazione o virtualenv). Salva il file con estensione .bat e poi programma quel file .bat in Task Scheduler come se fosse un programma qualsiasi.

Abilitare l’esecuzione automatica senza interruzioni

Per assicurarti che la task venga eseguita anche se non sei connesso:

  1. Apri Task Scheduler Library, fai clic destro sulla task e scegli Properties.

Finestra Proprietà attività

  1. Nella scheda General seleziona Run whether the user is logged on or not. Se lo script richiede diritti amministrativi, spunta Run with highest privileges.

Impostazioni generali della task

  1. Nella scheda Conditions, deseleziona Start the task only if the computer is on AC power se usi un laptop e vuoi che la task si avvii anche a batteria.

Condizioni di esecuzione dell'attività

  1. Clicca OK. Se richiesto, inserisci la password dell’account utente sotto cui deve essere eseguita l’attività.

Verificare che lo script sia stato eseguito

Per testare la configurazione, vai in Task Scheduler, clicca con il destro sulla task e scegli Run.

Eseguire la task manualmente per verificare

Controlla i log o gli output prodotti dallo script per confermare l’esecuzione.

Esempio di output o log di task eseguita

Se la task non parte, ricontrolla il percorso di Python, il percorso dello script, i permessi e il profilo utente impostato.

Piccola metodologia: checklist rapida prima di pianificare

  • Verifica che lo script funzioni manualmente dalla riga di comando.
  • Usa percorsi assoluti per file e risorse.
  • Registrare gli output (log) su file con timestamp.
  • Gestire errori con try/except e codici di uscita non-zero per segnalare fallimenti.
  • Testare la task con Run prima di affidarla all’esecuzione automatica.

Checklist basata sui ruoli

Sviluppatore:

  • Assicurarsi che lo script abbia logging e gestione degli errori.
  • Verificare compatibilità con la versione di Python scelta.

Amministratore di sistema:

  • Creare un account di servizio con permessi minimi necessari.
  • Impostare Run whether the user is logged on or not e conservare la password in modo sicuro.

Utente non amministratore:

  • Usare un file .bat se non è possibile modificare le impostazioni direct.
  • Coordinarsi con l’amministratore per permessi di esecuzione.

Sicurezza e hardening

  • Esegui lo script con l’account con privilegi minimi. Evita di usare un account con permessi elevati se non necessario.
  • Se lo script accede a credenziali o API keys, non hardcodarle: usa Windows Credential Manager, variabili d’ambiente protette o un vault centralizzato.
  • Logga informazioni utili ma non sensibili. Evita di scrivere su file di log dati personali non cifrati.
  • Controlla la cartella dove risiede lo script: limita permessi NTFS per evitare modifiche non autorizzate.

Privacy e GDPR (se elabora dati personali)

  • Minimizza i dati raccolti ed elaborati dal processo automatico.
  • Se i dati personali sono trasferiti o memorizzati, documenta i processi e assicurati delle basi giuridiche per il trattamento.
  • Configura il log in modo da anonimizzare o pseudonimizzare i dati sensibili.

Risoluzione dei problemi comuni (Troubleshooting)

Problema: la task non si avvia quando programmata

  • Controlla lo stato nella libreria Attività. Verifica eventuali errori nel campo Last Run Result.
  • Verifica i permessi: la task è impostata per essere eseguita con l’account corretto?
  • Controlla se l’eseguibile Python e lo script esistono nel percorso indicato.

Problema: lo script non trova file o librerie

  • Usa percorsi assoluti e non relativi.
  • Se usi virtualenv, punta al python dell’environment o attiva l’env via batch prima dell’esecuzione.

Problema: la task funziona manualmente ma non in background

  • Probabilmente un problema di permessi o di ambiente: il profilo utente caricato quando sei loggato non è lo stesso dell’account di esecuzione.
  • Logga l’ambiente (PATH, PYTHONPATH) in un file per confrontare le differenze.

Casi in cui Task Scheduler non è la scelta migliore (controesempi)

  • Hai bisogno di orchestrazione distribuita o retry avanzati: meglio usare una soluzione di orchestrazione (Airflow, Prefect) o job runner centralizzato.
  • Esegui container Docker orchestrati: preferisci orchestratori container (Kubernetes CronJob, Docker Swarm).
  • Necessiti di logging centralizzato e metriche SLO/SLI integrate: usa strumenti di monitoring dedicati.

Approcci alternativi

  • Eseguire script in container e pianificare con Kubernetes CronJob o Docker cron dentro il container.
  • Usare servizi cloud (Azure Functions, AWS Lambda con EventBridge, Google Cloud Scheduler) per esecuzioni serverless.
  • Su Windows Subsystem for Linux (WSL) puoi usare cron o systemd timers se preferisci strumenti *nix.

Test e criteri di accettazione

Test di base:

  • Lo script si avvia manualmente dalla riga di comando senza errori.
  • La task in Task Scheduler restituisce Last Run Result = 0 o un codice di successo.
  • I file di log mostrano esecuzione completa e timestamp.
  • Se previsto, l’output (file/DB) viene aggiornato correttamente.

Criteri di accettazione:

  • Esecuzione automatica nel window di tempo previsto per 3 esecuzioni consecutive.
  • Nessun errore non gestito nei log.
  • Permessi minimi rispettati per l’account di esecuzione.

Esempio di debug rapido (che cosa controllare in ordine)

  1. Esegui lo script manualmente con lo stesso interprete indicato nella task.
  2. Verifica il percorso completo e le virgolette nei campi Program/script e Add arguments.
  3. Controlla Last Run Result e Event Viewer per errori correlati.
  4. Se usi virtualenv, crea un .bat che attivi l’env e poi lanci lo script e programma il .bat.

Box con numeri chiave e scelte comuni

  • Frequenze di pianificazione comuni: ogni 5 minuti, ogni ora, giornaliero, settimanale.
  • Tipi di esecuzione: Start a program (consigliato), Send an e-mail (deprecato), Display a message (deprecato).
  • File utili: .bat per wrapper, file di log con rotazione (es. logrotate su WSL o pulizia manuale).

Riepilogo

Task Scheduler è uno strumento semplice ma potente per automatizzare script Python su Windows. Scegli se eseguire lo script direttamente o tramite un file .bat, assicurati dei permessi corretti, aggiungi logging e gestisci gli errori. Per esigenze più avanzate valuta soluzioni di orchestrazione o servizi cloud.

Importante: prima di automatizzare, testa sempre lo script manualmente e monitora le prime esecuzioni.

Breve suggerimento per la condivisione sui social (OG): usa un’immagine che mostri la console di Task Scheduler con una descrizione chiara del tipo di script automatizzato.

Fine.

Autore
Redazione

Materiali simili

Monitorare e gestire Apache Tomcat
Monitoraggio

Monitorare e gestire Apache Tomcat

Disney Plus non funziona? Guida rapida di risoluzione
Supporto streaming

Disney Plus non funziona? Guida rapida di risoluzione

Pianificare script Python con Task Scheduler
Automazione

Pianificare script Python con Task Scheduler

Revoca app Google, Drive e dispositivi
Sicurezza Account

Revoca app Google, Drive e dispositivi

Protezione dal riciclo dei numeri di telefono
Sicurezza

Protezione dal riciclo dei numeri di telefono

Installare Tomato su router economico
Networking

Installare Tomato su router economico