Come automatizzare attività su Windows con Utilità di pianificazione e PowerShell

Chi usa Windows ogni giorno sa bene quante piccole operazioni ripetitive possano far perdere tempo: svuotare il cestino, cancellare file temporanei, avviare un backup, aprire determinati programmi all’avvio o controllare lo stato del sistema.

La buona notizia è che non servono software complicati per automatizzare tutto questo. Windows include due strumenti potentissimi:

  • Utilità di pianificazione, per eseguire attività in automatico a orari specifici, all’avvio del PC o in risposta a determinati eventi.
  • PowerShell, un linguaggio di scripting estremamente flessibile che permette di creare comandi e automazioni molto più avanzate rispetto al semplice prompt dei comandi.

In questa guida vediamo come combinarli per creare automazioni pratiche, sicure e utili nella vita reale.


Cosa ti serve prima di iniziare

Per seguire questa guida ti basta avere:

  • Windows 10 o Windows 11
  • Un account con privilegi di amministratore
  • Un editor di testo come Blocco note o Visual Studio Code
  • Una cartella dedicata agli script, ad esempio:
C:\Scripts

Creare una cartella dedicata è una buona pratica perché ti permette di tenere tutto in ordine e rendere più semplice la manutenzione nel tempo.


1. Creare uno script PowerShell semplice

Prima di schedulare un’attività, dobbiamo avere qualcosa da automatizzare.

Facciamo un esempio pratico: uno script che elimina i file temporanei più vecchi di 7 giorni e registra l’operazione in un file di log.

Crea un file chiamato:

C:\Scripts\PuliziaTemp.ps1

Incolla al suo interno questo codice:

# Cartella da pulire
$TempFolder = $env:TEMP

# File di log
$LogFile = "C:\Scripts\Logs\pulizia_temp.log"

# Crea la cartella Logs se non esiste
New-Item -Path "C:\Scripts\Logs" -ItemType Directory -Force | Out-Null

# Imposta il limite a 7 giorni fa
$LimitDate = (Get-Date).AddDays(-7)

# Trova ed elimina i file più vecchi di 7 giorni
Get-ChildItem -Path $TempFolder -Recurse -Force |
Where-Object { $_.LastWriteTime -lt $LimitDate } |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue

# Scrivi nel log
$LogMessage = "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - Pulizia file temporanei completata."
Add-Content -Path $LogFile -Value $LogMessage

Questo script fa tre cose:

  1. Controlla la cartella temporanea dell’utente.
  2. Elimina i file più vecchi di 7 giorni.
  3. Salva un messaggio in un file di log.

2. Testare lo script manualmente

Prima di automatizzare, è sempre meglio verificare che lo script funzioni.

Apri PowerShell come amministratore ed esegui:

powershell -ExecutionPolicy Bypass -File "C:\Scripts\PuliziaTemp.ps1"

Se tutto è corretto, vedrai comparire il file:

C:\Scripts\Logs\pulizia_temp.log

Con un messaggio simile:

2026-08-08 10:30:00 - Pulizia file temporanei completata.

3. Capire il criterio di esecuzione di PowerShell

Di default Windows può bloccare l’esecuzione degli script PowerShell per motivi di sicurezza.

Quando crei un’attività pianificata, puoi usare il parametro:

-ExecutionPolicy Bypass

In questo modo lo script viene eseguito solo in quel contesto specifico, senza modificare in modo permanente la politica di sicurezza del sistema.

Se invece vuoi eseguire script solo per il tuo utente, puoi usare:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Attenzione: esegui questo comando solo se sai cosa stai facendo e se utilizzi script affidabili.


4. Automatizzare con Utilità di pianificazione

Ora vediamo come far eseguire automaticamente lo script da Windows.

Metodo 1: interfaccia grafica

  1. Premi Start
  2. Cerca Utilità di pianificazione
  3. Aprila
  4. A destra clicca su Crea attività…

Non scegliere “Crea attività semplice”, perché la versione completa offre più controllo.


Scheda Generale

Nella scheda Generale inserisci:

  • Nome: Pulizia file temporanei
  • Descrizione: Elimina automaticamente i file temporanei più vecchi di 7 giorni

Poi seleziona:

  • Esegui con privilegi elevati
  • Esegui con utente connesso o meno

Se vuoi che l’attività venga eseguita anche quando non sei loggato, seleziona:

Esegui con utente connesso o meno

Windows potrebbe chiederti la password dell’account.


Scheda Trigger

Vai su Trigger e clicca su Nuovo.

Puoi scegliere quando avviare l’attività. Ad esempio:

  • Giornaliero
  • Settimanale
  • All’avvio
  • All’accesso
  • In caso di evento specifico

Per una pulizia periodica, scegli:

Giornaliero

Imposta, ad esempio:

Ora: 18:00

Oppure, se vuoi una pulizia meno frequente:

Settimanale, ogni lunedì alle 09:00

Scheda Azioni

Vai su Azioni e clicca su Nuova.

Imposta:

  • Azione: Avvia programma
  • Programma o script:
powershell.exe
  • Argomenti programma:
-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Scripts\PuliziaTemp.ps1"

Spiegazione dei parametri:

ParametroA cosa serve
-NoProfileEvita di caricare il profilo PowerShell dell’utente, rendendo l’avvio più veloce
-ExecutionPolicy BypassConsente l’esecuzione dello script solo per questa attività
-WindowStyle HiddenNasconde la finestra di PowerShell
-FileSpecifica il percorso dello script da eseguire

Scheda Condizioni

Qui puoi decidere se eseguire l’attività solo in determinate situazioni.

Ad esempio, su un portatile potresti selezionare:

Avvia solo se il computer è alimentato da rete elettrica

Questo evita che l’attività parta quando sei a batteria.


Scheda Impostazioni

Ti consiglio di attivare:

Consenti esecuzione attività su richiesta

e anche:

Esegui attività non appena possibile dopo un avvio programmato mancato

Questa opzione è molto utile: se il PC era spento all’orario previsto, Windows eseguirà l’attività appena possibile.


5. Verificare che l’attività funzioni

Dopo aver salvato l’attività, puoi testarla subito.

In Utilità di pianificazione:

  1. Cerca la tua attività nella libreria.
  2. Cliccaci sopra con il tasto destro.
  3. Scegli Esegui.

Poi controlla il file di log:

C:\Scripts\Logs\pulizia_temp.log

Se vedi una nuova riga con data e ora, l’automazione funziona.


6. Creare l’attività direttamente con PowerShell

Questo è il metodo più elegante e adatto a un articolo di livello intermedio/avanzato.

Puoi creare l’attività pianificata direttamente da PowerShell senza usare l’interfaccia grafica.

Apri PowerShell come amministratore ed esegui:

$Action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"C:\Scripts\PuliziaTemp.ps1`""

$Trigger = New-ScheduledTaskTrigger -Daily -At 18:00

$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable

Register-ScheduledTask -TaskName "Pulizia file temporanei" -Action $Action -Trigger $Trigger -Settings $Settings -RunLevel Highest -Description "Elimina automaticamente i file temporanei più vecchi di 7 giorni"

Cosa fa questo comando:

  • $Action definisce il programma da eseguire.
  • $Trigger imposta l’esecuzione giornaliera alle 18:00.
  • $Settings permette l’avvio anche a batteria e recupera l’attività se mancata.
  • Register-ScheduledTask crea effettivamente l’attività pianificata.

7. Esempi pratici di attività da automatizzare

Ora che sai come funziona la base, ecco alcune automazioni utili da proporre ai tuoi lettori.


A. Svuotare automaticamente il cestino

Script:

Clear-RecycleBin -Force -ErrorAction SilentlyContinue

Puoi schedularlo, ad esempio, ogni venerdì sera.

Attenzione: questa operazione elimina definitivamente gli elementi nel cestino.


B. Avviare un programma all’accesso

Puoi usare Utilità di pianificazione per aprire automaticamente un software quando l’utente accede a Windows.

Trigger:

All'accesso

Azione:

"C:\Program Files\Esempio\App.exe"

Utile per programmi di lavoro, dashboard, strumenti di monitoraggio o app usate ogni giorno.


C. Backup automatico di una cartella con Robocopy

Esempio di script PowerShell che usa Robocopy per copiare una cartella documenti in una destinazione di backup:

$Source = "C:\Users\TuoUtente\Documents"
$Destination = "D:\Backup\Documents"

robocopy $Source $Destination /MIR /R:2 /W:5 /LOG:"C:\Scripts\Logs\backup_documenti.log"

Attenzione: il parametro /MIR crea una copia speculare. Questo significa che i file eliminati nella cartella di origine verranno eliminati anche nella destinazione.

Per un backup più prudente puoi usare:

robocopy $Source $Destination /E /R:2 /W:5 /LOG:"C:\Scripts\Logs\backup_documenti.log"

D. Spegnere automaticamente il PC dopo un certo orario

Puoi creare un’attività pianificata che esegue:

shutdown /s /t 60

Questo comando spegne il PC dopo 60 secondi.

Se vuoi annullare lo spegnimento:

shutdown /a

Può essere utile per postazioni condivise, PC aziendali o macchine usate solo in orario lavorativo.


E. Riavviare un servizio automaticamente

Esempio: riavviare un servizio se diventa lento o bloccato.

Restart-Service -Name "Spooler" -Force

Questo esempio riavvia il servizio di stampa.

Puoi anche verificare prima lo stato:

$Service = Get-Service -Name "Spooler"

if ($Service.Status -ne "Running") {
    Start-Service -Name "Spooler"
    "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - Servizio Spooler avviato." | Out-File "C:\Scripts\Logs\servizio.log" -Append
}

8. Gestire le attività pianificate con PowerShell

Una volta create, puoi gestire le attività anche da riga di comando.

Elencare tutte le attività

Get-ScheduledTask

Vedere solo alcune attività

Get-ScheduledTask | Where-Object {$_.TaskName -like "*Pulizia*"}

Eseguire manualmente un’attività

Start-ScheduledTask -TaskName "Pulizia file temporanei"

Disabilitare un’attività

Disable-ScheduledTask -TaskName "Pulizia file temporanei"

Abilitare un’attività

Enable-ScheduledTask -TaskName "Pulizia file temporanei"

Eliminare un’attività

Unregister-ScheduledTask -TaskName "Pulizia file temporanei" -Confirm:$false

9. Errori comuni da evitare

1. Percorsi con spazi non gestiti correttamente

Se il percorso contiene spazi, usa sempre le virgolette.

Sbagliato:

-File C:\Scripts\Mio Script.ps1

Corretto:

-File "C:\Scripts\Mio Script.ps1"

2. Non testare prima lo script

Prima di schedulare qualsiasi cosa, esegui lo script manualmente.

Se lo script contiene errori, l’attività pianificata fallirà silenziosamente.


3. Non controllare i log

Quando automatizzi, i log sono fondamentali.

Aggiungi sempre una riga come questa nei tuoi script:

Add-Content -Path $LogFile -Value $LogMessage

In questo modo puoi controllare cosa è successo anche se non eri davanti al PC.


4. Usare script trovati online senza capirli

PowerShell è potente. Questo significa anche che uno script malevolo può causare danni.

Usa solo script affidabili e leggi sempre ogni comando prima di eseguirlo.


10. Buone pratiche per automazioni sicure

Per mantenere il sistema ordinato e sicuro:

  • Crea sempre una cartella dedicata, ad esempio C:\Scripts
  • Salva i log in una sottocartella Logs
  • Non inserire password in chiaro negli script
  • Usa attività pianificate per operazioni ripetitive e prevedibili
  • Evita di schedulare script troppo aggressivi senza backup
  • Controlla periodicamente che le attività funzionino ancora
  • Usa -ExecutionPolicy Bypass solo per attività fidate

Cosa hai imparato in questo articolo

  • Come creare uno script PowerShell
  • Come testarlo manualmente
  • Come pianificarlo con Utilità di pianificazione
  • Come avviarlo automaticamente ogni giorno, all’avvio o all’accesso
  • Come creare attività pianificate direttamente da PowerShell
  • Come gestire, modificare ed eliminare le attività schedulate
  • Quali errori evitare e quali buone pratiche seguire

Sezione SEO extra

Parole chiave principali

  • automatizzare Windows
  • Utilità di pianificazione Windows
  • PowerShell Windows
  • schedulare script PowerShell
  • automazioni Windows
  • task pianificati Windows
  • script PowerShell Windows 11
  • eseguire script automaticamente Windows

Keyword secondarie

  • come automatizzare attività ripetitive su Windows
  • come eseguire script PowerShell a orari specifici
  • come avviare programma all’avvio di Windows
  • come creare task pianificato Windows
  • come usare PowerShell per manutenzione automatica

FAQ da inserire nell’articolo

Posso automatizzare attività senza installare programmi esterni?

Sì. Windows include già Utilità di pianificazione e PowerShell, due strumenti sufficienti per la maggior parte delle automazioni di livello intermedio.

PowerShell è sicuro?

Sì, se usato correttamente. Il problema nasce quando si eseguono script sconosciuti o provenienti da fonti non affidabili.

Posso eseguire uno script anche se il PC è bloccato?

Sì, se configuri l’attività con l’opzione Esegui con utente connesso o meno e fornisci le credenziali necessarie.

È meglio usare Utilità di pianificazione o PowerShell?

Non sono alternative, ma strumenti complementari. PowerShell crea la logica dell’automazione, Utilità di pianificazione decide quando eseguirla.

Posso usare questi metodi anche su Windows 11?

Sì, la guida è valida sia per Windows 10 sia per Windows 11.


Bonus: 5 idee di automazioni da approfondire in articoli futuri

  1. Come svuotare automaticamente il cestino ogni settimana
  2. Come fare backup automatici con Robocopy e PowerShell
  3. Come riavviare automaticamente un servizio bloccato
  4. Come creare report automatici sullo stato del disco
  5. Come avviare programmi specifici solo in certi orari

Se vuoi, nel prossimo messaggio posso prepararti anche:

  1. una versione più breve e SEO-friendly dell’articolo
  2. una versione più avanzata con script reali pronti da scaricare
  3. un’introduzione in stile newsletter
  4. un post social per promuoverlo
  5. la scaletta del prossimo tutorial: “Ottimizzare avvio, servizi e prestazioni di Windows”

Lascia un commento