Visualizzazione post con etichetta New-ScheduledTaskAction. Mostra tutti i post
Visualizzazione post con etichetta New-ScheduledTaskAction. 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