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 New-JobTrigger cmdlet crea un trigger di processo che avvia un processo pianificato in base a una pianificazione occasionale o ricorrente o quando si verifica un evento.

È possibile utilizzare l'oggetto ScheduledJobTrigger che New-JobTrigger restituisce per impostare un trigger di processo per un processo pianificato nuovo o esistente. È anche possibile creare un trigger di processo con il Get-JobTrigger cmdlet per ottenere il trigger di processo di un processo pianificato esistente o con 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 New-ScheduledJobOption cmdlet. Queste opzioni, che hanno gli stessi valori validi e predefiniti delle opzioni corrispondenti nell'Utilità di pianificazione, influiscono sulla pianificazione e sulla tempistica 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 visualizzare about_Scheduled_Jobs.

Questo cmdlet è stato introdotto in Windows PowerShell 3.0.

Esempio

Esempio 1: Una volta pianificata

In questo esempio viene creato un trigger di processo per avviare un processo pianificato una sola volta.

New-JobTrigger -Once -At "1/20/2012 3:00 AM"

Cmdlet New-JobTrigger per creare un trigger di processo che avvia un processo pianificato 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

In questo esempio viene creato un nuovo trigger di processo per avviare un processo pianificato ogni terzo giorno.

New-JobTrigger -Daily -At "4:15 AM" -DaysInterval 3

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, la data corrente viene utilizzata come valore di data nell'oggetto DateTime . Se la data e l'ora sono passate, il processo pianificato viene avviato all'occorrenza successiva, ovvero 3 giorni dopo dal valore del parametro At .

Esempio 3: Pianificazione settimanale

In questo esempio viene creato un trigger di processo che avvia un processo pianificato ogni quarta settimana nei giorni specificati della settimana.

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 per avviare un processo pianificato lunedì, mercoledì e venerdì alle 2300 ore (11:00) ogni 4 settimane.

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

Esempio 4: Pianificazione accesso

In questo esempio viene creato un trigger di processo per avviare un processo pianificato all'accesso di un utente specifico.

New-JobTrigger -AtLogOn -User Domain01\Admin01

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

Esempio 5: Uso di un ritardo casuale

In questo esempio viene creato un nuovo trigger di processo con un ritardo casuale dell'intervallo di tempo.

New-JobTrigger -Daily -At 1:00 -RandomDelay 00:20:00

Questo comando crea un trigger di processo per avviare un processo pianificato ogni giorno alle 1:00 del mattino. 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 New-ScheduledJobOption cmdlet e coordinare il ritardo con le impostazioni delle opzioni.

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

In questo esempio viene usato un trigger di processo per creare un nuovo processo pianificato.

$t = New-JobTrigger -Weekly -DaysOfWeek 1,3,5 -At 12:01AM
Register-ScheduledJob -Name Test-HelpFiles -FilePath C:\Scripts\Test-HelpFiles.ps1 -Trigger $t

Il primo comando usa il New-JobTrigger cmdlet per creare un trigger di processo che avvia un processo ogni lunedì, mercoledì e venerdì alle 12:01. Il comando salva il trigger del processo nella $t variabile .

Il secondo comando usa il Register-ScheduledJob cmdlet per creare un processo pianificato che avvia un processo ogni lunedì, mercoledì e venerdì alle 12:01. Il valore del parametro Trigger è il trigger archiviato nella $t variabile.

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

Questo esempio mostra come aggiungere un trigger di processo a un processo pianificato esistente.

Add-JobTrigger -Name SynchronizeApps -Trigger (New-JobTrigger -Daily -At 3:10AM)

È possibile aggiungere più trigger di processo a un qualsiasi processo pianificato.

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

Al termine del comando, SynchronizeApps è un processo pianificato che viene eseguito al momento specificato dal trigger di processo.

Esempio 8: Creare un trigger di processo ripetuto

In questo esempio viene creato un trigger di processo ripetuto per l'esecuzione solo per un periodo di tempo specifico.

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

In questo esempio viene arrestato un trigger di processo ripetuto.

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 trigger del processo.

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

Esempio 10: Creare un trigger di processo orario

In questo esempio viene creato un trigger di processo ripetuto che viene eseguito a tempo indeterminato.

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 Get-Date cmdlet o una stringa che può essere convertita in una data e un'ora, ad esempio April 19, 2012 15:00, 12/31o 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, il trigger del processo viene creato per un'ora nel passato.

Gli oggetti DateTime e le stringhe convertite in oggetti DateTime vengono modificati automaticamente in modo da essere 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:None
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:None
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, un valore di 3 avvia il processo pianificato nei giorni 1, 47 e così via. Il valore predefinito è 1.

Type:Int32
Position:Named
Default value:None
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 interi60-, 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 racchiudeno i nomi dei giorni tra virgolette in un comando, racchiudere ogni nome di giorno tra virgolette separate, 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 pari Wednesday a (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 RepeatDuration e RepeatInterval .

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 timespan, ad esempio quello restituito dal New-TimeSpan cmdlet o immettere un valore in <hours>:<minutes>:<seconds> formato, che viene convertito automaticamente in un oggetto TimeSpan .

Type:TimeSpan
Position:Named
Default value:None
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 illimitato.

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 è di 2 ore, il processo viene attivato ogni cinque minuti per due ore.

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

Per eseguire un processo a tempo indeterminato, aggiungere invece il parametro RepeatIndefinitely .

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

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

Type:TimeSpan
Position:Named
Default value:None
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 ripete il processo.

Immettere un oggetto timespan, ad esempio quello restituito dal New-TimeSpan cmdlet o una stringa che può essere convertita in un oggetto timespan, 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:None
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 in o in <UserName> formato o <Domain\Username> immettere un asterisco (*) per rappresentare tutti gli utenti. Il valore predefinito è tutti gli utenti.

Type:String
Position:Named
Default value:None
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, un valore di 3 avvia il processo pianificato nelle settimane 1, 47 e così via. Il valore predefinito è 1.

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

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

ScheduledJobTrigger

Questo cmdlet restituisce un oggetto ScheduledJobTrigger che rappresenta il trigger creato.

Note

  • I trigger di processo non vengono salvati su disco. Tuttavia, i processi pianificati vengono salvati su disco ed è possibile usare Get-JobTrigger per ottenere il trigger di 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 monouso per una data nel passato.

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

    Per inviare una tabella hash, usare le chiavi seguenti.

    • Frequenza: Once, Daily, Weekly, AtStartupo AtLogon
    • In: qualsiasi stringa temporale valida, ad esempio 3am
    • DaysOfWeek: qualsiasi combinazione di nomi di giorno come stringhe, ad esempio "Monday", "Wednesday"
    • Intervallo: qualsiasi intervallo di frequenza valido come numero intero
    • RandomDelay: qualsiasi stringa timepan valida, ad esempio 30minutes
    • Utente: qualsiasi utente valido, ad esempio Domain1\User01; usato solo con il valore di frequenza AtLogon