Schtasks.exe: come pianificare un task da linea di comando

di | 21 Dicembre 2020

Schtasks.exe è un’utilità da amministratore di sistema nativa dei sistemi operativi Microsoft Windows che consente di creare, programmare, gestire ed eseguire delle operazioni o script pianificati sul computer locale o su un computer remoto.

In questo esempio una prova di concetto su come eseguire in maniera pianificata una copia giornaliera di una cartella da una di origine ad una di destinazione.

Cominciamo creando un piccolo script con Powershell contenente il comando che lancia la copia, in modalità ricorsiva, della cartella e le sottocartelle specificate in una cartella di destinazione.

Copy-Item -Recurse -Force "C:\Users\Administrator\Desktop\Cartella file da salvare\" "C:\Users\Administrator\Documenti\Cartella di destinazione\"

Salvato lo script sul desktop, si prepara quindi il comando schtasks.exe.

Per configurare il task pianificato occorre specificarne il nome, la modalità, (in questo caso giornaliera), l’orario di inizio e la data di fine. Infine va passato come parametro lo script che abbiamo creato e salvato sul desktop.

Va inoltre dichiarata la execution policy, ovvero la politica di esecuzione dello script. In questo caso è in modalità Unrestricted.

schtasks.exe /create /tn "Copia giornaliera di una cartella" /sc daily /st 11:00 /ed 31/12/2021 /tr "powershell.exe `-noprofile -executionpolicy Unrestricted` -file C:\Users\Administrator\Desktop\CopyTask.ps1"

La corretta configurazione del task pianificato avrà come risultato un success, come visualizzato sotto.

Creazione di un task con schtasks.exe
Creazione di un task con schtasks.exe

Per rivedere il task appena pianificato si userà la seguente sintassi, dove /query indica la richiesta di visualizzazione di un determinato task, specificato dal parametro /tn che ne indica il nome.

schtasks.exe /query /tn "Copia giornaliera di una cartella"
Query schtasks.exe sull'attività "Copia giornaliera di una cartella"
Query schtasks.exe sull’attività “Copia giornaliera di una cartella”

E’ inoltre possibile modificare il task pianificato, in questo modo cambiamo l’orario di inizio che dalle 11:00 passa alle 18:00.

schtasks.exe /create /tn "Copia giornaliera di una cartella" /sc daily /st 18:00 /ed 31/12/2021 /tr "powershell.exe `-noprofile -executionpolicy Unrestricted` -file C:\Users\Administrator\Desktop\CopyTask.ps1"

Verrà quindi richiesta l’intenzione di sostituirlo.

Modifica esecuzione di un schtasks.exe
Modifica esecuzione di un schtasks.exe

Infine per cancellarlo basterà utilizzare il comando /delete seguito sempre dal parametro /tn contenente il nome del task da rimuovere.

schtasks.exe /delete /tn "Copia giornaliera di una cartella"
Cancellazione di un task schtasks.exe
Cancellazione di un task schtasks.exe

Contattami per pianificare le tue operazioni al seguente form


Riferimenti:

https://docs.microsoft.com/en-us/windows/win32/taskschd/schtasks

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *