Le operazioni pianificate, o scheduled task, sono utilizzate da Windows per eseguire periodicamente determinate operazioni, come l’aggiornamento di un browser, delle definizioni dell’antivirus, un backup dei file e tanto altro, in determinati orari o giorni della settimana. Anche se Windows ha una sua interfaccia, l’utilità di pianificazione, per gestire queste attività in questo articolo vedremo come fare tutto tramite PowerShell.
Una avvertenza importante, alcune operazioni pianificate servono al sistema operativo per gestire determinate operazioni importanti per il suo funzionamento, quindi non provate a cancellare, o disattivare, dei task a caso. Il nostro forum è sempre a disposizione per qualsiasi richiesta di chiarimenti.
Get-ScheduledTask
Il comando, o cmdlet come sarebbe più giusto scrivere, Get-ScheduledTask
mostra la lista, e lo stato, di tutte le operazioni pianificate.
Il dato che più ci interessa, per eseguire le operazioni che vedremo nel resto dell’articolo, è il TaskName.
Come vedete nell’immagine precedente ci sono dei nomi decisamente lunghi e che vengono tagliati, per avere tutti i dettagli del task e il suo nome completo si può aggiungere l’opzione |format-list e quindi il comando diventa:
Get-ScheduledTask |format-list
Se vogliamo creare un file .csv che contenga tutte le informazioni dei task utilizziamo:
Get-ScheduledTask |Export-csv -path "d:\hash.csv" -Delimiter ";" -NoTypeInformation
Per ottenere le informazioni di un singolo task si può usare il comando:
Get-ScheduledTask -TaskName "Schedule Scan Static Task"
tra le virgolette sostituite il TaskName che vi interessa.
Se vogliamo filtrare i task attivi, Ready
, e quelli disattivi, Disabled
, possiamo usare questi due comandi:
get-scheduledtask | where state -eq 'Ready'
get-scheduledtask | where state -eq 'Disabled'
Se non ci ricordiamo il nome preciso di un task possiamo utilizzare il carattere jolly *
così da mostrare tutti quelli che hanno Windows o backup nel nome del task.
Get-ScheduledTask | Get-ScheduledTaskInfo
visualizza quando sono stati eseguiti i task e la data del prossimo avvio.
Register-ScheduledTask e New-ScheduledTask
Questi due cmdlet, Register-ScheduledTask e New-ScheduledTask, permettono la creazione e registrazione di una nuova operazione pianificata, nei comandi si può decidere il tipo di pianificazione e l’orario in cui eseguirla, -Execute
indica il nome del programma da avviare e -WorkingDirectory
è la cartella che lo contiene.
# Per una pianificazione settimanale da eseguire il venerdì pomeriggio alle 14.00
$taskTrigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Friday -At 2pm
# Per una pianificazione giornaliera alle 14.00 del pomeriggio
# $tasktrigger = New-ScheduledTaskTrigger -Daily -At 2PM
$taskAction = New-ScheduledTaskAction -Execute "Firefox" -WorkingDirectory 'C:\Program Files\Mozilla Firefox\'
Register-ScheduledTask 'Apri Firefox alle 14.00' -Action $taskAction -Trigger $taskTrigger
Unregister-ScheduledTask
Il cmdlet Unregister-ScheduledTask
rimuove una operazione pianificata, che magari non serve più eseguire, basta indicare il nome completo del task richiudendolo tra le virgolette.
Con il comando seguente cancelliamo il task di aggiornamento di Firefox:
Unregister-ScheduledTask -TaskName "Firefox Background Update S-1-5-21-587358262-3616632592-1359920995-1001 308046B0AF4A39CB"
Se aggiungiamo -Confirm:$false
, in fondo al comando, non ci sarà richiesta di conferma per la rimozione del task.
Disabilitare-abilitare task
Se vogliamo abilitare, o disabilitare, un task, senza cancellarlo dal sistema, le due informazioni che ci serve recuperare sono il TaskName
e il TaskPath
.
Per recuperare il secondo dato si può usare questo comando:
Get-ScheduledTask -TaskName "Backup lunedì" |format-list
L’opzione finale |format-list
serve per avere il percorso completo quando è molto lungo.
Per disablitare un task:
Disable-ScheduledTask -TaskName "Backup lunedì" -TaskPath \2BrightSparks\SyncBackFree\TURBOLAB-crazy.cat\
Per abilitare un task:
Enable-ScheduledTask -TaskName 'Backup lunedì' -TaskPath \2BrightSparks\SyncBackFree\TURBOLAB-crazy.cat\
Per ulteriori informazioni, potete consultare, nella parte sinistra di questa pagina Microsoft tutti i vari cmdlet che abbiamo visto in questo articolo e molti altri.