Visualizzazione post con etichetta task. Mostra tutti i post
Visualizzazione post con etichetta task. Mostra tutti i post

martedì 14 febbraio 2023

PowerShell: Creare una nuova attività pianificata

Utilizzando il cmdlet New-ScheduledTask presente in PowerShell è possibile creare una nuova istanza di attività pianificata.
Il cmdlet New-ScheduledTask crea un oggetto che contiene la definizione di un'attività pianificata. New-ScheduledTask non registra automaticamente l'oggetto con il servizio Task Scheduler.

È possibile registrare un'attività per eseguire uno dei seguenti tipi di applicazioni o file: applicazioni Win32, applicazioni Win16, applicazioni OS/2, applicazioni MS-DOS, file batch (.bat), file di comando (.cmd) o qualsiasi altro tipo di file correttamente registrato.

Sintassi

New-ScheduledTask
   [[-Action] <CimInstance[]>]
   [[-Description] <String>]
   [[-Principal] <CimInstance>]
   [[-Settings] <CimInstance>]
   [[-Trigger] <CimInstance[]>]
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [<CommonParameters>]
   

Parametri

-Action
Specifica una serie di elementi di lavoro per l'esecuzione di un'attività. Quando si specificano più azioni, queste vengono eseguite in sequenza. Un'attività può avere fino a 32 azioni.

-AsJob
Esegue il cmdlet come job in background. Questo parametro viene utilizzato per l'esecuzione di comandi che richiedono molto tempo per essere completati. 

-CimSession
Esegue il cmdlet in una sessione remota o su un computer remoto. Al parametro va passato il nome di un computer o un oggetto di sessione, ad esempio l'output di un cmdlet New-CimSession o Get-CimSession. L'impostazione predefinita è la sessione corrente sul computer locale.  

-Description
Descrizione breve del task.

-Principal
Specifica il contesto di sicurezza in cui viene eseguito un task.

-Settings
Specifica un oggetto di configurazione che il servizio Task Scheduler utilizza per determinare come eseguire un'attività.

-ThrottleLimit
Specifica il numero massimo di operazioni contemporanee che possono essere stabilite per eseguire il cmdlet. Se questo parametro viene omesso o viene inserito un valore pari a 0, Windows PowerShell calcola un limite di throttle ottimale per il cmdlet in base al numero di cmdlet CIM in esecuzione sul computer. ThrottleLimit si applica solo al cmdlet corrente, non alla sessione o al computer.

-Trigger
Specifica un array di uno o più oggetti trigger che causano l'avvio di un'attività pianificata.
Un trigger è un insieme di criteri che avvia un'attività pianificata quando i criteri sono soddisfatti. Per avviare un'attività si può usare un'attivazione basata sul tempo o un'attivazione basata sugli eventi, e una o più attivazioni possono avviare un'attività. Un'attività può avere fino a 48 inneschi. 


Esempio

 $TaskAction = New-ScheduledTaskAction -Execute "Taskmgr.exe"  
 $TaskTrigger = New-ScheduledTaskTrigger -AtLogon  
 $TaskPrincipal = "Contoso\Administrator"  
 $TaskSettings = New-ScheduledTaskSettingsSet  
 $Task = New-ScheduledTask -Action $TaskAction -Principal $TaskPrincipal -Trigger $TaskTrigger -Settings $TaskSettings  
 Register-ScheduledTask Task1 -InputObject $Task  


$TaskAction = New-ScheduledTaskAction -Execute "Taskmgr.exe"
Il cmdlet New-ScheduledTaskAction crea un oggetto che contiene la definizione di un'azione di attività pianificata. Un'azione pianificata rappresenta un comando (in questo caso taskmgr.exe) che un'attività esegue quando Task Scheduler esegue il task. L'oggetto viene assegnato alla variabile $TaskAction.

$TaskTrigger = New-ScheduledTaskTrigger -AtLogon
Il cmdlet New-ScheduledTaskTrigger crea e restituisce un nuovo oggetto trigger (innesco) di attività pianificata. Nell'esempio, con il parametro -AtLogon, viene indicato che il task dovrà essere eseguito al logon dell'utente. L'oggetto viene memorizzato all'interno della variabile $TaskTrigger.

$TaskPrincipal = "Contoso\Administrator"
Specifica il contesto di sicurezza in cui viene eseguito il Task.

$TaskSettings = New-ScheduledTaskSettingsSet
Il cmdlet New-ScheduledTaskSettingsSet crea un oggetto che contiene le impostazioni delle attività pianificate. Ogni attività pianificata ha un set di impostazioni dell'attività

$Task = New-ScheduledTask -Action $TaskAction -Principal $TaskPrincipal -Trigger $TaskTrigger -Settings $TaskSettings
Crea un oggetto che contiene la definizione dell'attività pianificata. L'oggetto viene assegnato alla variabile $Task.

Register-ScheduledTask Task1 -InputObject $Task
Registra la nuova attività pianificata e la definisce utilizzando la variabile $Task.

Utilità di pianificazione
FIG 1 - Utilità di pianificazione





giovedì 14 gennaio 2016

Windows Quick Tip: Eseguire un Backup delle operazioni pianificate di Windows

Le operazioni pianificate di Windows consentono di automatizzare operazioni ripetitive anche di una certa complessità. Effettuare una copia di backup delle operazioni pianificate è un operazione tutto sommato semplice. I tasks possono essere esportati tramite l'Utilità di pianificazione oppure da riga di comando tramite schtasks:

schtasks /Query [/S <system> [/U <username> [/P [<password>]]]] /XML /TN <taskname>

In alcun casi potrebbe essere necessario effettuare il backup manuale. Ad esempio, nel caso in cui il sistema operativo non si avvii i tool sopra indicati non ci sarebbero di alcun aiuto ma possiamo collegare l'hard disk ad un altro sistema e tentare il recupero dei task (sempre che il mancato avvio di Windows non sia dovuto all' HD guasto).

All'interno della cartella C:\Windows\Tasks (dove C: rappresenta la partizione in cui è installato il sistema operativo) sono presenti i file con estensione .job che contengono le definizioni delle operazioni pianificate. Copiare l'intero contenuto della cartella C:\Windows\Tasks. Terminata la copia, spostarsi all'interno della cartella C:\Windows\System32\Tasks  (potrebbero essere necessario utilizzare un account Amministratore). All'interno della cartella troveremo diversi file senza estensione. Copiare anche l'intero contenuto di questa seconda cartella.

A questo punto abbiamo una copia di backup delle operazioni pianificate. Per ripristinarle, sulla stessa workstation o su un nuovo sistema, basta copiare i file nelle cartelle corrispondenti. Ovviamente, copiando le definizioni su un nuovo sistema, alcune operazioni pianificate potrebbero non funzionare senza apportare le dovute modifiche (ad es. nel caso in cui l'operazione pianificata faccia riferimento a percorsi/unità/programmi non presenti sul nuovo sistema).