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:\ScriptsCreare 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.ps1Incolla 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 $LogMessageQuesto script fa tre cose:
- Controlla la cartella temporanea dell’utente.
- Elimina i file più vecchi di 7 giorni.
- 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.logCon 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 BypassIn 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 CurrentUserAttenzione: 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
- Premi Start
- Cerca Utilità di pianificazione
- Aprila
- 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 menoWindows 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:
GiornalieroImposta, ad esempio:
Ora: 18:00Oppure, se vuoi una pulizia meno frequente:
Settimanale, ogni lunedì alle 09:00Scheda 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:
| Parametro | A cosa serve |
|---|---|
-NoProfile | Evita di caricare il profilo PowerShell dell’utente, rendendo l’avvio più veloce |
-ExecutionPolicy Bypass | Consente l’esecuzione dello script solo per questa attività |
-WindowStyle Hidden | Nasconde la finestra di PowerShell |
-File | Specifica 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 elettricaQuesto evita che l’attività parta quando sei a batteria.
Scheda Impostazioni
Ti consiglio di attivare:
Consenti esecuzione attività su richiestae anche:
Esegui attività non appena possibile dopo un avvio programmato mancatoQuesta 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:
- Cerca la tua attività nella libreria.
- Cliccaci sopra con il tasto destro.
- Scegli Esegui.
Poi controlla il file di log:
C:\Scripts\Logs\pulizia_temp.logSe 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:
$Actiondefinisce il programma da eseguire.$Triggerimposta l’esecuzione giornaliera alle 18:00.$Settingspermette l’avvio anche a batteria e recupera l’attività se mancata.Register-ScheduledTaskcrea 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 SilentlyContinuePuoi 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'accessoAzione:
"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 60Questo comando spegne il PC dopo 60 secondi.
Se vuoi annullare lo spegnimento:
shutdown /aPuò 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" -ForceQuesto 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-ScheduledTaskVedere 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:$false9. 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.ps1Corretto:
-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 $LogMessageIn 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 Bypasssolo 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
- Come svuotare automaticamente il cestino ogni settimana
- Come fare backup automatici con Robocopy e PowerShell
- Come riavviare automaticamente un servizio bloccato
- Come creare report automatici sullo stato del disco
- Come avviare programmi specifici solo in certi orari
Se vuoi, nel prossimo messaggio posso prepararti anche:
- una versione più breve e SEO-friendly dell’articolo
- una versione più avanzata con script reali pronti da scaricare
- un’introduzione in stile newsletter
- un post social per promuoverlo
- la scaletta del prossimo tutorial: “Ottimizzare avvio, servizi e prestazioni di Windows”
