Condividi tramite


Set-JobTrigger

Modifica il trigger di processo di un processo pianificato.

Sintassi

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

Descrizione

Il Set-JobTrigger cmdlet modifica le proprietà dei trigger di processo dei processi pianificati. È possibile usarlo per modificare l'ora o la frequenza con cui i processi vengono avviati o per passare da una pianificazione basata sul tempo a pianificazioni attivate da un accesso o dall'avvio.

Un trigger di processo definisce una pianificazione o condizioni ricorrenti per l'avvio di un processo pianificato. Sebbene i trigger di processo non vengano salvati su disco, è possibile modificare i trigger di processo di processi pianificati, che vengono salvati su disco.

Per modificare un trigger di processo di un processo pianificato, iniziare usando il Get-JobTrigger cmdlet per ottenere il trigger di processo di un processo pianificato. Inviare quindi tramite pipe il trigger a Set-JobTrigger o salvare il trigger in una variabile e usare il parametro InputObject del Set-JobTrigger cmdlet per identificare il trigger. Usare i parametri rimanenti di Set-JobTrigger per modificare il trigger di processo.

Quando si modifica il tipo di trigger di un processo, ad esempio la modifica di un trigger di processo da un trigger giornaliero o settimanale a un trigger AtLogon , le proprietà del trigger originali vengono eliminate. Tuttavia, se si modificano i valori del trigger, ma non il tipo, ad esempio da giornaliero a settimanale, verranno modificate solo le proprietà specificate dall'utente. Tutte le altre proprietà del trigger di processo originale vengono mantenute.

Set-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: Modificare i giorni in un trigger di processo

Questo esempio illustra come modificare i giorni in un trigger di processo settimanale.

Get-JobTrigger -Name "DeployPackage"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Saturday}   True

Get-JobTrigger -Name "DeployPackage" | Set-JobTrigger -DaysOfWeek "Wednesday", "Sunday" -PassThru

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Sunday}     True

Il primo comando usa il Get-JobTrigger cmdlet per ottenere il trigger di processo del DeployPackage processo pianificato. L'output mostra che il trigger avvierà il processo alla mezzanotte del mercoledì e del sabato.

Il secondo comando usa il Get-JobTrigger cmdlet per ottenere il trigger di processo del DeployPackage processo pianificato. Un operatore pipeline (|) invia il trigger al Set-JobTrigger cmdlet, che modifica il trigger di processo in modo che avvii il DeployPackage processo mercoledì e domenica. Il comando usa il parametro PassThru per restituire il trigger dopo la modifica.

Questo comando non è necessario. È incluso solo per mostrare l'effetto della modifica del trigger.

Esempio 2: Modificare il tipo di trigger del processo

Questo esempio illustra come modificare il tipo di trigger di processo che avvia un processo. I comandi in questo esempio sostituiscono un trigger di processo AtStartup con un trigger settimanale.

Get-JobTrigger -Name "Inventory"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          AtStartup                                                      True

Get-JobTrigger -Name "Inventory" -TriggerID 2 | Set-JobTrigger -Weekly -WeeksInterval 4 -DaysOfWeek Monday -At "12:00 AM"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          Weekly          10/31/2011 12:00:00 AM {Monday}                True

Il primo comando usa il Get-JobTrigger cmdlet per ottenere il trigger di processo del Inventory processo pianificato. L'output mostra che il processo ha due trigger giornalieri e un trigger AtStartup .

Il secondo comando usa il Get-JobTrigger cmdlet per ottenere il trigger del processo AtStartup del Inventory processo. Il comando usa il parametro TriggerID per identificare il trigger del processo. Un operatore pipeline (|) invia il trigger di processo al Set-JobTrigger cmdlet, che lo modifica in un trigger di processo settimanale che viene eseguito ogni quattro settimane il lunedì a mezzanotte. Il comando usa il parametro PassThru per restituire il trigger dopo la modifica.

Questo comando non è necessario. È incluso solo per mostrare l'effetto della modifica del trigger.

Esempio 3: Modificare l'utente in un trigger di processo remoto

Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ScheduledJob | Get-JobTrigger | Where-Object {$_.User} | Set-JobTrigger -User "Domain01/Admin02"}

Questo comando modifica l'utente in tutti i trigger di processo AtLogon dei processi pianificati nel computer Server01.

Il comando usa il Invoke-Command cmdlet per eseguire un comando nel computer Server01.

Il comando remoto inizia con un Get-ScheduledJob comando che ottiene tutti i processi pianificati nel computer. I processi pianificati vengono inviati tramite pipe al Get-JobTrigger cmdlet , che ottiene i trigger di processo dei processi pianificati. Ogni trigger di processo contiene una proprietà JobDefinition che contiene il processo pianificato, quindi il trigger rimane associato al processo pianificato anche quando viene modificato.

I trigger di processo vengono inviati tramite pipe al Where-Object cmdlet , che ottiene i trigger di processo con la proprietà User . I trigger di processo selezionati vengono inviati tramite pipe al Set-JobTrigger cmdlet , che modifica l'utente in Domain01\Admin02.

Esempio 4: Modificare uno dei numerosi trigger di processo

Get-JobTrigger -Name "SecurityCheck"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           4/24/2013 3:00:00 AM                           True
2          Weekly          4/24/2013 4:00:00 PM   {Sunday}                True
3          Once            4/24/2013 4:00:00 PM                           True

Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *

At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:00:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)
Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *

At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:30:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

I comandi in questo esempio modificano l'intervallo di ripetizione del SecurityCheck eseguito il processo pianificato da ogni 60 minuti a ogni 90 minuti. Il SecurityCheck processo pianificato ha tre trigger di processo, quindi i comandi usano il parametro TriggerId del Get-JobTrigger cmdlet per identificare il trigger di processo da modificare.

Il primo comando usa il Get-JobTrigger cmdlet per ottenere tutti i trigger di processo del SecurityCheck processo pianificato. L'output, che visualizza gli ID dei trigger del processo, rivela che il trigger Una volta che il 3

Il secondo comando usa il parametro TriggerID del Get-JobTrigger cmdlet per ottenere il trigger Once del SecurityCheck processo pianificato. Il comando invia tramite pipe il trigger al Format-List cmdlet , che visualizza tutte le proprietà del trigger di processo Una volta . L'output mostra che il trigger avvia il processo una volta ogni ora (RepetitionInterval è 1 ora) per un giorno (La ripetizione è 1 giorno).

Il terzo comando modifica l'intervallo di ripetizione del trigger del processo da un'ora a 90 minuti. Il comando non restituisce alcun output.

Il quarto comando visualizza l'effetto della modifica. L'output mostra che il trigger avvia il processo una volta ogni 90 minuti (RepetitionInterval è di 1 ora, 30 minuti) per un giorno (La ripetizione è 1 giorno).

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 un'ora, ad esempio April 19, 2012 15:00, 12/31/2013 9:00 PMo 3am.

Se non si specifica un elemento dell'oggetto DateTime , ad esempio secondi, tale elemento del trigger di processo non viene modificato. Se il trigger del processo originale non include un oggetto DateTime e si omette un elemento, il trigger del processo viene creato con l'elemento corrispondente dalla data e dall'ora correnti.

Quando si usa il parametro Once , impostare il valore del parametro At su una data e un'ora particolari. Poiché la data predefinita in un oggetto DateTime è la data corrente, l'impostazione di un'ora prima dell'ora corrente senza una data esplicita comporta un trigger di processo 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.

Tipo:DateTime
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-AtLogOn

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

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-AtStartup

Avvia il processo pianificato all'avvio di Windows.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DaysOfWeek

Specifica i giorni della settimana in cui viene eseguito un processo pianificato settimanale. Immettere i nomi dei giorni, ad esempio Monday, Thursday, interi0-6 , dove 0 rappresenta domenica o un asterisco (*) per rappresentare ogni giorno. 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).

Tipo:DayOfWeek[]
Valori accettati:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-InputObject

Specifica i trigger di processo. Immettere una variabile contenente oggetti ScheduledJobTrigger o digitare un comando o un'espressione che ottiene oggetti ScheduledJobTrigger , ad esempio un Get-JobTrigger comando. È anche possibile inviare tramite pipe un oggetto ScheduledJobTrigger a Set-JobTrigger.

Se si specificano più trigger di processo, Set-JobTrigger apporta le stesse modifiche a tutti i trigger di processo.

Tipo:ScheduledJobTrigger[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Once

Specifica una pianificazione non ricorrente (una tantum).

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-PassThru

Restituisce i trigger di processo modificati. Per impostazione predefinita, il cmdlet non genera alcun output.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:TimeSpan
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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 che scada la durata della ripetizione del trigger di processo, impostare il valore Di RipetizioneDuration su zero (0).

Per modificare la durata della ripetizione o l'intervallo di ripetizione di un trigger di processo Once , il comando deve includere entrambi i parametri RepetitionInterval e RepetitionDuration . Per modificare la durata della ripetizione o gli intervalli di ripetizione di altri tipi di trigger di processo, il comando deve includere i parametri Once, At, RepetitionInterval e RepetitionDuration .

Tipo:TimeSpan
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Per modificare la durata della ripetizione o l'intervallo di ripetizione di un trigger di processo Once , il comando deve includere entrambi i parametri RepetitionInterval e RepetitionDuration . Per modificare la durata della ripetizione o gli intervalli di ripetizione di altri tipi di trigger di processo, il comando deve includere i parametri Once, At, RepetitionInterval e RepetitionDuration .

Tipo:TimeSpan
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

ScheduledJobTrigger

È possibile inviare tramite pipe un trigger di processo a questo cmdlet.

Output

None

Per impostazione predefinita, questo cmdlet non restituisce alcun output.

ScheduledJobTrigger

Quando si usa il parametro PassThru , questo cmdlet restituisce i trigger di processo modificati.

Note

  • I trigger di processo hanno una proprietà JobDefinition che le associa al processo pianificato. Quando si modifica il trigger di processo di un processo pianificato, il processo viene modificato. Non è necessario usare un Set-ScheduledJob comando per applicare il trigger modificato al processo pianificato.