Condividi tramite


New-JobTrigger

Crea un trigger di processo per un processo pianificato.

Sintassi

New-JobTrigger
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   [-Once]
   [-RepetitionInterval <TimeSpan>]
   [-RepetitionDuration <TimeSpan>]
   [-RepeatIndefinitely]
   [<CommonParameters>]
New-JobTrigger
   [-DaysInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   [-Daily]
   [<CommonParameters>]
New-JobTrigger
   [-WeeksInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   -DaysOfWeek <DayOfWeek[]>
   [-Weekly]
   [<CommonParameters>]
New-JobTrigger
   [-RandomDelay <TimeSpan>]
   [-AtStartup]
   [<CommonParameters>]
New-JobTrigger
   [-RandomDelay <TimeSpan>]
   [-User <String>]
   [-AtLogOn]
   [<CommonParameters>]

Descrizione

Il cmdlet New-JobTrigger crea un trigger di processo che avvia un processo pianificato in base a una pianificazione occasionale o ricorrente oppure quando si verifica un evento.

È possibile usare l'oggetto ScheduledJobTrigger restituito da New-JobTrigger per impostare un trigger di processo per un processo pianificato nuovo o esistente. È anche possibile creare un trigger di processo usando il cmdlet Get-JobTrigger per ottenere il trigger di processo di un processo pianificato esistente o usando un valore di tabella hash per rappresentare un trigger di processo.

Quando si crea un trigger di processo, esaminare i valori predefiniti delle opzioni specificate dal cmdlet New-ScheduledJobOption. Queste opzioni, che hanno gli stessi valori validi e predefiniti delle opzioni corrispondenti in Task Scheduler, interessano la pianificazione e la temporizzazione dei processi pianificati.

New-JobTrigger è una raccolta di cmdlet di pianificazione dei processi nel modulo PSScheduledJob incluso in Windows PowerShell.

Per altre informazioni sui lavori pianificati, vedere gli argomenti Informazioni nel modulo PSScheduledJob. Importare il modulo PSScheduledJob e quindi digitare: Get-Help about_Scheduled* o vedere about_Scheduled_Jobs.

Questo cmdlet è stato introdotto in Windows PowerShell 3.0.

Esempio

Esempio 1: Una volta pianificata

PS C:\> New-JobTrigger -Once -At "1/20/2012 3:00 AM"

Questo comando usa il cmdlet New-JobTrigger per creare un trigger di processo che avvia un processo pianificato per una sola volta. Il valore del parametro At è una stringa che Windows PowerShell converte in un oggetto DateTime. Il valore del parametro At include una data esplicita, non solo un'ora. Se la data viene omessa il trigger viene creato con la data corrente e l'ora 3:00 am, che è probabilmente un'ora già passata.

Esempio 2: Pianificazione giornaliera

PS C:\> New-JobTrigger -Daily -At "4:15 AM" -DaysInterval 3
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
0          Daily           9/21/2012 4:15:00 AM                           True

Questo comando crea un trigger di processo che avvia un processo pianificato ogni 3 giorni alle 4:15 am.

Poiché il valore del parametro At non include una data, viene usata la data corrente come valore data nell'oggetto DateTime. Se data e ora sono nel passato, il processo pianificato viene avviato all'occorrenza successiva, ovvero 3 giorni dopo il valore del parametro At.

Esempio 3: Pianificazione settimanale

PS C:\> New-JobTrigger -Weekly -DaysOfWeek Monday, Wednesday, Friday -At "23:00" -WeeksInterval 4
Id Frequency Time                  DaysOfWeek                  Enabled
-- --------- ----                  ----------                  -------
0  Weekly    9/21/2012 11:00:00 PM {Monday, Wednesday, Friday} True

Questo comando crea un trigger di processo che avvia un processo pianificato ogni 4 settimane di lunedì, mercoledì e venerdì alle ore 23:00 (11:00 pm).

È anche possibile immettere il valore del parametro DaysOfWeek in interi, ad esempio -DaysOfWeek 1, 5.

Esempio 4: Pianificazione accesso

PS C:\> New-JobTrigger -AtLogOn -User Domain01\Admin01

Questo comando crea un trigger di processo che avvia un processo pianificato ogni volta che l'amministratore di dominio accede al computer.

Esempio 5: Uso di un ritardo casuale

PS C:\> New-JobTrigger -Daily -At 1:00 -RandomDelay 00:20:00

Questo comando crea un trigger di processo che avvia un processo pianificato ogni giorno all'1:00 am. Il comando usa il parametro RandomDelay per impostare il ritardo massimo su 20 minuti. Di conseguenza, il processo viene eseguito ogni giorno tra l'1:00 e l'1:20 am, con l'intervallo che varia in modo pseudo-casuale.

È possibile usare un ritardo casuale di campionamento, il bilanciamento del carico e altre attività amministrative. Quando si imposta il valore di ritardo, esaminare i valori effettivi e predefiniti del cmdlet New-ScheduledJobOption e coordinare il ritardo con le impostazioni dell'opzione.

Esempio 6: Create un trigger di processo per un nuovo processo pianificato

The first command uses the **New-JobTrigger** cmdlet to create a job trigger that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The command saves the job trigger in the $T variable.
PS C:\> $T = New-JobTrigger -Weekly -DaysOfWeek 1,3,5 -At 12:01AM


The second command uses the Register-ScheduledJob cmdlet to create a scheduled job that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The value of the *Trigger* parameter is the trigger that is stored in the $T variable.
PS C:\> Register-ScheduledJob -Name Test-HelpFiles -FilePath C:\Scripts\Test-HelpFiles.ps1 -Trigger $T

Questi comandi usano un trigger di processo per creare un nuovo processo pianificato.

Esempio 7: Aggiungere un trigger di processo a un processo pianificato

PS C:\> Add-JobTrigger -Name SynchronizeApps -Trigger (New-JobTrigger -Daily -At 3:10AM)

Questo esempio mostra come aggiungere un trigger di processo a un processo pianificato esistente. È possibile aggiungere più trigger di processo a un qualsiasi processo pianificato.

Il comando usa il cmdlet Add-JobTrigger per aggiungere il trigger di processo al processo pianificato SynchronizeApps. Il valore del parametro Trigger è un comando New-JobTrigger che esegue il processo ogni giorno alle 3.10 am.

Al completamento del comando, SynchronizeApps è un processo pianificato eseguito negli orari specificati dal trigger di processo.

Esempio 8: Create un trigger di processo ripetuto

PS C:\> New-JobTrigger -Once -At "09/12/2013 1:00:00" -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration (New-Timespan -Hours 48)

Questo comando crea un trigger di processo che esegue un processo ogni 60 minuti per 48 ore a partire dal 12 settembre 2013 alle 13:00.

Esempio 9: Arrestare un trigger di processo ripetuto

PS C:\> Get-JobTrigger -Name SecurityCheck | Set-JobTrigger -RepetitionInterval 0:00 -RepetitionDuration 0:00

Questo comando arresta forzatamente il processo SecurityCheck che viene attivato per l'esecuzione ogni 60 minuti fino alla scadenza del relativo trigger di processo.

Per impedire la ripetizione del processo, il comando usa il Get-JobTrigger per ottenere il trigger di processo del processo SecurityCheck e il cmdlet Set-JobTrigger per modificare l'intervallo di ripetizione e la durata della ripetizione del trigger di processo su zero (0).

Esempio 10: Create un trigger di processo orario

PS C:\> New-JobTrigger -Once -At "9/21/2012 0am" -RepetitionInterval (New-TimeSpan -Hour 12) -RepetitionDuration ([TimeSpan]::MaxValue)

Il comando seguente crea un trigger di processo che esegue un processo pianificato ogni 12 ore per un periodo di tempo indefinito. La pianificazione inizia domani (21/9/2012) a mezzanotte (0:00 am).

Parametri

-At

Avvia il processo alla data e all'ora specificate. Immettere un oggetto DateTime , ad esempio quello restituito dal cmdlet Get-Date, o una stringa che può essere convertita in una data e un'ora, ad esempio "19 aprile 2012 15:00", "12/31" o "3am". Se non si specifica un elemento della data, ad esempio l'anno, la data nel trigger è l'elemento corrispondente della data corrente.

Quando si usa il parametro Once impostare il valore del parametro At su una data e un'ora future. Poiché la data predefinita in un oggetto DateTime è la data corrente, se si specifica un'ora prima dell'ora corrente senza una data esplicita, viene creato il trigger di processo per un'ora nel passato.

Gli oggetti DateTime e le stringhe convertiti in oggetti DateTime vengono modificati automaticamente in modo che siano compatibili con i formati di data e ora selezionati per il computer locale in Area e lingua in Pannello di controllo.

Type:DateTime
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-AtLogOn

Avvia il processo pianificato quando gli utenti specificati accedono al computer. Per specificare un utente usare il parametro User.

Type:SwitchParameter
Position:0
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-AtStartup

Avvia il processo pianificato all'avvio di Windows.

Type:SwitchParameter
Position:0
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Daily

Specifica una pianificazione ricorrente di un processo giornaliero. Usare gli altri parametri nel set di parametri Daily per specificare i dettagli della pianificazione.

Type:SwitchParameter
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DaysInterval

Specifica il numero di giorni tra le occorrenze in una pianificazione giornaliera. Ad esempio, il valore 3 avvia il processo pianificato nel 1°, 4°, 7° giorno e così via. Il valore predefinito è 1.

Type:Int32
Position:Named
Default value:1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DaysOfWeek

Specifica i giorni della settimana in cui viene eseguito un processo pianificato settimanale. Immettere i nomi dei giorni, ad esempio "Monday" o numeri interi da 0 a 6, dove 0 rappresenta domenica. Questo parametro è obbligatorio nel set di parametri Weekly.

I nomi dei giorni vengono convertiti nei corrispondenti valori interi nel trigger di processo. Quando si racchiudono i nomi dei giorni tra virgolette in un comando, racchiudere il nome di ogni giorno tra virgolette separatamente, ad esempio "Monday", "Tuesday". Se si racchiudono più nomi dei giorni in una coppia di virgolette singole vengono sommati i valori interi corrispondenti. Ad esempio, "Monday, Tuesday" (1, 2) restituisce un valore "Wednesday" (3).

Type:DayOfWeek[]
Accepted values:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Once

Specifica una pianificazione non ricorrente (una volta) o ripetuta personalizzata. Per creare una pianificazione ripetuta usare il parametro Once con i parametri RepetitionDuration e RepetitionInterval.

Type:SwitchParameter
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-RandomDelay

Consente un ritardo casuale che inizia all'ora di inizio pianificata e imposta il valore di ritardo massimo. La lunghezza del ritardo è impostata in modo pseudo-casuale per ogni avvio e varia da nessun ritardo all'ora specificata dal valore di questo parametro. Il valore predefinito zero (00:00:00) disabilita il ritardo casuale.

Immettere un oggetto timepan, ad esempio quello restituito dal cmdlet New-TimeSpan, oppure immettere un valore in <formato hours>:<minutes>:<seconds> , che viene convertito automaticamente in un oggetto TimeSpan .

Type:TimeSpan
Position:Named
Default value:00:00:00
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepeatIndefinitely

Questo parametro, disponibile a partire da Windows PowerShell 4.0, elimina la necessità di specificare un valore TimeSpan.MaxValue per il parametro RepetitionDuration per eseguire ripetutamente un processo pianificato per un periodo di tempo indefinito.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionDuration

Ripete il processo fino allo scadere del tempo specificato. La frequenza di ripetizione è determinata dal valore del parametro RepetitionInterval. Ad esempio, se il valore di RepetitionInterval è 5 minuti e il valore di RepetitionDuration è 2 ore, il processo viene attivato ogni cinque minuti per due ore.

Immettere un oggetto timepan, ad esempio quello restituito dal cmdlet New-TimeSpan o una stringa che può essere convertita in un oggetto timepan, ad esempio "1:05:30".

Per eseguire un processo per un tempo indefinito, invece, aggiungere il parametro RepeatIndefinitely.

Per arrestare un processo prima della scadenza della durata della ripetizione del trigger del processo, usare il cmdlet Set-JobTrigger per impostare il valore Di ripetizione su zero (0).

Questo parametro è valido solo quando i parametri Once, At e RepetitionInterval vengono usati nel comando.

Type:TimeSpan
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionInterval

Ripete il processo in base all'intervallo di tempo specificato. Ad esempio, se il valore di questo parametro è di 2 ore, il processo viene attivato ogni due ore. Il valore predefinito 0 non comporta la ripetizione del processo.

Immettere un oggetto timepan, ad esempio quello restituito dal cmdlet New-TimeSpan o una stringa che può essere convertita in un oggetto timepan, ad esempio "1:05:30".

Questo parametro è valido solo quando i parametri Once, At e RepetitionDuration vengono usati nel comando.

Type:TimeSpan
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-User

Specifica gli utenti che attivano un avvio AtLogon di un processo pianificato. Immettere il nome di un utente nel <formato UserName o Domain\Username>> o <immettere un asterisco (*) per rappresentare tutti gli utenti. Il valore predefinito è tutti gli utenti.

Type:String
Position:Named
Default value:All users
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Weekly

Specifica una pianificazione ricorrente di un processo settimanale. Usare gli altri parametri nel set di parametri Weekly per specificare i dettagli della pianificazione.

Type:SwitchParameter
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WeeksInterval

Specifica il numero di settimane tra le occorrenze in una pianificazione di un processo settimanale. Ad esempio, il valore 3 avvia il processo pianificato nella 1°, 4°, 7° settimana e così via. Il valore predefinito è 1.

Type:Int32
Position:Named
Default value:1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Non è possibile inviare input tramite pipe a questo cmdlet.

Output

ScheduledJobTrigger

Note

  • I trigger di processo non vengono salvati su disco. Tuttavia, i processi pianificati vengono salvati su disco ed è possibile usare il Get-JobTrigger per ottenere il trigger del processo di qualsiasi processo pianificato.

  • New-JobTrigger non impedisce di creare un trigger di processo che non eseguirà un processo pianificato, ad esempio un trigger una tantum per una data nel passato.

  • Il cmdlet Register-ScheduledJob accetta un oggetto ScheduledJobTrigger, ad esempio quello restituito dai cmdlet New-JobTrigger o Get-JobTrigger oppure da una tabella hash con valori trigger.

    Per inviare una tabella hash, usare le chiavi seguenti.

    @{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (o qualsiasi stringa temporale valida); DaysOfWeek="Monday", "Wednesday" (o qualsiasi combinazione di nomi dei giorni); Interval=2 (o qualsiasi intervallo di frequenza valido); RandomDelay="30minutes" (o qualsiasi stringa intervallo di tempo valida); User="Domain1\User01 (o qualsiasi utente valido; usato solo con il valore di frequenza AtLogon ) }