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 PM
o 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
, 4
7
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
, 4
7
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
È possibile inviare tramite pipe un trigger di processo a questo cmdlet.
Output
None
Per impostazione predefinita, questo cmdlet non restituisce alcun output.
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.
Collegamenti correlati
- Add-JobTrigger
- Disable-JobTrigger
- Disable-ScheduledJob
- Enable-JobTrigger
- Enable-ScheduledJob
- Get-JobTrigger
- Get-ScheduledJob
- Get-ScheduledJobOption
- New-JobTrigger
- New-ScheduledJobOption
- Register-ScheduledJob
- Remove-JobTrigger
- Set-JobTrigger
- Set-ScheduledJob
- Set-ScheduledJobOption
- Unregister-ScheduledJob