Partager via


Set-JobTrigger

Modifie le déclencheur de travail d’un travail planifié.

Syntaxe

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>]

Description

Le Set-JobTrigger cmdlet modifie les propriétés des déclencheurs de travail des travaux planifiés. Vous pouvez l’utiliser pour modifier l’heure ou la fréquence à laquelle les travaux démarrent ou pour passer d’une planification basée sur le temps aux planifications déclenchées par une ouverture de session ou un démarrage.

Un déclencheur de travail définit une planification ou des conditions périodiques pour démarrer un travail planifié. Bien que les déclencheurs de travail ne soient pas enregistrés sur le disque, vous pouvez modifier les déclencheurs de travaux planifiés, qui sont enregistrés sur le disque.

Pour modifier un déclencheur de travail d’un travail planifié, commencez par utiliser l’applet de commande Get-JobTrigger pour obtenir le déclencheur de travail d’un travail planifié. Ensuite, dirigez le déclencheur vers Set-JobTrigger ou enregistrez le déclencheur dans une variable et utilisez le paramètre InputObject de cmdlet Set-JobTrigger pour identifier le déclencheur. Utilisez les paramètres restants de Set-JobTrigger pour modifier le déclencheur de travail.

Lorsque vous modifiez le type d’un déclencheur de travail, par exemple la modification d’un déclencheur de travail d’un déclencheur quotidien ou hebdomadaire vers un déclencheur AtLogon, les propriétés du déclencheur d’origine sont supprimées. Toutefois, si vous modifiez les valeurs du déclencheur, mais pas son type, comme modifier les jours d’un déclencheur hebdomadaire, seules les propriétés que vous spécifiez sont modifiées. Toutes les autres propriétés du déclencheur de travail d’origine sont conservées.

Set-JobTrigger est une collection d’applets de commande de planification de travaux dans le module PSScheduledJob inclus dans Windows PowerShell.

Pour plus d’informations sur les travaux planifiés, consultez les rubriques À propos du module PSScheduledJob. Importez le module PSScheduledJob, puis tapez : Get-Help about_Scheduled* ou consultez about_Scheduled_Jobs.

Cette applet de commande a été introduite dans Windows PowerShell 3.0.

Exemples

Exemple 1 : Modifier les jours d’un déclencheur de travail

PS C:\> Get-JobTrigger -Name "DeployPackage"
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Saturday}   True

The second command uses the Get-JobTrigger cmdlet to get the job trigger of the DeployPackage scheduled job. A pipeline operator (|) sends the trigger to the **Set-JobTrigger** cmdlet, which changes the job trigger so that it starts the DeployPackage job on Wednesdays and Sundays. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> 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

Cet exemple montre comment modifier les jours d’un déclencheur de travail hebdomadaire.

La première commande utilise l’applet de commande Get-JobTrigger pour obtenir le déclencheur de travail du travail planifié DeployPackage. La sortie indique que le déclencheur démarre le travail à minuit les mercredis et les samedis.

Cette commande n’est pas obligatoire ; il est inclus uniquement pour afficher l’effet de la modification du déclencheur.

Exemple 2 : Modifier le type de déclencheur de travail

PS C:\> Get-JobTrigger -Name "Inventory"
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          AtStartup                                                      True

The second command uses the **Get-JobTrigger** cmdlet to get the *AtStartup* job trigger of the Inventory job. The command uses the *TriggerID* parameter to identify the job trigger. A pipeline operator (|) sends the job trigger to the **Set-JobTrigger** cmdlet, which changes it to a weekly job trigger that runs every four weeks on Monday at midnight. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> 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

Cet exemple montre comment modifier le type de déclencheur de travail qui démarre un travail. Les commandes de cet exemple remplacent un déclencheur de travail AtStartup par un déclencheur hebdomadaire.

La première commande utilise l’applet de commande Get-JobTrigger pour obtenir le déclencheur de travail du travail planifié d’inventaire. La sortie indique que le travail a deux déclencheurs un déclencheur quotidien et un déclencheur AtStartup.

Cette commande n’est pas obligatoire ; il est inclus uniquement pour afficher l’effet de la modification du déclencheur.

Exemple 3 : Modifier l’utilisateur sur un déclencheur de travail distant

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

Cette commande modifie l’utilisateur dans toutes les AtLogon déclencheurs de travaux planifiés sur l’ordinateur Server01.

La commande utilise l’applet de commande Invoke-Command pour exécuter une commande sur l’ordinateur Server01.

La commande distante commence par une commande Get-ScheduledJob qui obtient tous les travaux planifiés sur l’ordinateur. Les travaux planifiés sont redirigés vers l’applet de commande Get-JobTrigger, ce qui obtient les déclencheurs de travail des travaux planifiés. Chaque déclencheur de travail contient une propriété JobDefinition qui contient le travail planifié, de sorte que le déclencheur reste associé au travail planifié même lorsqu’il est modifié.

Les déclencheurs de travail sont redirigés vers l’applet de commande Where-Object, qui obtient les déclencheurs de travail qui ont la propriété User. Les déclencheurs de travail sélectionnés sont redirigés vers l’applet de commande Set-JobTrigger , qui remplace l’utilisateur par Domain01\Admin02.

Exemple 4 : Modifier l’un des nombreux déclencheurs de travail

PS C:\> 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

The second command uses the **TriggerID** parameter of the **Get-JobTrigger** cmdlet to get the *Once* trigger of the SecurityCheck scheduled job. The command pipes the trigger to the Format-List cmdlet, which displays all of the properties of the *Once* job trigger.The output shows that the trigger starts the job once every hour (RepetitionInterval = 1 hour) for one day (RepetitionDuration = 1 day).
PS C:\> 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

The third command changes the repetition interval of the job trigger from one hour to 90 minutes. The command does not return any output.
PS C:\> Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)

The fourth command displays the effect of the change.The output shows that the trigger starts the job once every 90 minutes (RepetitionInterval = 1 hour, 30 minutes) for one day (RepetitionDuration = 1 day).
PS C:\> 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

Les commandes de cet exemple modifient l’intervalle de répétition de la Une fois déclencheur de travail planifié SecurityCheck de toutes les 60 minutes à toutes les 90 minutes. Le travail planifié SecurityCheck a trois déclencheurs de travail. Par conséquent, les commandes utilisent le paramètre TriggerId de l’applet de commande Get-JobTrigger pour identifier le déclencheur de travail en cours de modification.

La première commande utilise l’applet de commande Get-JobTrigger pour obtenir tous les déclencheurs de travail du travail planifié SecurityCheck. La sortie, qui affiche les ID des déclencheurs de travail, indique que le Une fois déclencheur de travail a un ID de 3.

Paramètres

-At

Démarre le travail à la date et à l’heure spécifiées. Entrez un objet DateTime, tel que celui retourné par l’applet de commande Get-Date, ou une chaîne pouvant être convertie en heure, telle que « 19 avril 2012 15:00 », « 12/31/2013 9:00 » ou « 3am ».

Si vous ne spécifiez pas d’élément de l’objet DateTime, tel que des secondes, cet élément du déclencheur de travail n’est pas modifié. Si le déclencheur de travail d’origine n’a pas inclus d’objet DateTime et que vous omettez un élément, le déclencheur de travail est créé avec l’élément correspondant à partir de la date et de l’heure actuelles.

Lorsque vous utilisez le paramètre Once, définissez la valeur du paramètre At sur une date et une heure particulières. Étant donné que la date par défaut d’un objet DateTime est la date actuelle, la définition d’une heure avant l’heure actuelle sans date explicite entraîne un déclencheur de travail pour une heure dans le passé.

objets DateTime et les chaînes converties en objets DateTime, sont automatiquement ajustées pour être compatibles avec les formats de date et d’heure sélectionnés pour l’ordinateur local dans la région et la langue dans le Panneau de configuration.

Type:DateTime
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AtLogOn

Démarre le travail planifié lorsque les utilisateurs spécifiés se connectent à l’ordinateur. Pour spécifier un utilisateur, utilisez le paramètre Utilisateur.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AtStartup

Démarre le travail planifié au démarrage de Windows.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Daily

Spécifie une planification quotidienne périodique des travaux. Utilisez les autres paramètres dans le jeu de paramètres Daily pour spécifier les détails de la planification.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DaysInterval

Spécifie le nombre de jours entre les occurrences selon une planification quotidienne. Par exemple, une valeur de 3 démarre le travail planifié les jours 1, 4, 7, et ainsi de suite. La valeur par défaut est 1.

Type:Int32
Position:Named
Valeur par défaut:1
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DaysOfWeek

Spécifie les jours de la semaine sur lesquels une tâche planifiée hebdomadaire s’exécute. Entrez les noms de jour, tels que lundi, jeudi, entiers 0-6, où 0 représente dimanche ou un astérisque (*) à représenter tous les jours. Ce paramètre est requis dans l’ensemble de paramètres Hebdomadaires.

Les noms de jour sont convertis en valeurs entières dans le déclencheur de travail. Lorsque vous placez des noms de jour entre guillemets dans une commande, placez chaque nom de jour entre guillemets distincts, tels que « Lundi », « Mardi ». Si vous placez plusieurs noms de jour dans une paire de guillemets simples, les valeurs entières correspondantes sont additionnées. Par exemple, « Lundi, Mardi » (1, 2) entraîne la valeur « Mercredi » (3).

Type:DayOfWeek[]
Valeurs acceptées:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputObject

Spécifie les déclencheurs de travail. Entrez une variable qui contient objets ScheduledJobTrigger ou tapez une commande ou une expression qui obtient objets ScheduledJobTrigger, tels qu’une commande Get-JobTrigger. Vous pouvez également diriger un objet ScheduledJobTri gger vers Set-JobTrigger.

Si vous spécifiez plusieurs déclencheurs de travail, Set-JobTrigger apporte les mêmes modifications à tous les déclencheurs de travail.

Type:ScheduledJobTrigger[]
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Once

Spécifie une planification non périodique (une seule fois).

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-PassThru

Retourne les déclencheurs de travail qui ont changé. Par défaut, cette applet de commande ne génère aucune sortie.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-RandomDelay

Active un délai aléatoire qui commence à l’heure de début planifiée et définit la valeur de délai maximale. La longueur du délai est définie pseudo-aléatoirement pour chaque début et varie d’un délai à l’heure spécifiée par la valeur de ce paramètre. La valeur par défaut, zéro (00:00:00), désactive le délai aléatoire.

Entrez un objet d’intervalle de temps, tel qu’un retourné par l’applet de commande New-TimeSpan, ou entrez une valeur en <heures>:<minutes>:<secondes> format, qui est automatiquement converti en objet d’intervalle de temps.

Type:TimeSpan
Position:Named
Valeur par défaut:00:00:00
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-RepeatIndefinitely

Ce paramètre, disponible à partir de Windows PowerShell 4.0, élimine la nécessité de spécifier une valeur TimeSpan.MaxValue pour le paramètre RepetitionDuration pour exécuter un travail planifié à plusieurs reprises, pendant une période indéfinie.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-RepetitionDuration

Répète le travail jusqu’à l’expiration de l’heure spécifiée. La fréquence de répétition est déterminée par la valeur du paramètre RepetitionInterval. Par exemple, si la valeur de RepetitionInterval est de 5 minutes et que la valeur de RepetitionDuration est de 2 heures, le travail est déclenché toutes les cinq minutes pendant deux heures.

Entrez un objet timespan, tel que celui que l’applet de commande New-TimeSpan renvoie ou une chaîne qui peut être convertie en objet timespan, par exemple « 1:05:30 ».

Pour exécuter un travail indéfiniment, ajoutez le paramètre RepeatIndefinitely à la place.

Pour arrêter un travail avant l’expiration de la durée de répétition du déclencheur de travail, définissez la valeur répétition sur zéro (0).

Pour modifier la durée de répétition ou l’intervalle de répétition d’un une fois déclencheur de travail, la commande doit inclure à la fois les paramètres De répétition et RepetitionDuration. Pour modifier la durée de répétition ou les intervalles de répétition d’autres types de déclencheurs de travail, la commande doit inclure les paramètres Une fois, At, RepetitionInterval et RepetitionDuration.

Type:TimeSpan
Position:Named
Valeur par défaut:0
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-RepetitionInterval

Répète le travail à l’intervalle de temps spécifié. Par exemple, si la valeur de ce paramètre est de 2 heures, le travail est déclenché toutes les deux heures. La valeur par défaut, 0, ne répète pas le travail.

Entrez un objet timespan, tel que celui que l’applet de commande New-TimeSpan renvoie ou une chaîne qui peut être convertie en objet timespan, par exemple « 1:05:30 ».

Pour modifier la durée de répétition ou l’intervalle de répétition d’un une fois déclencheur de travail, la commande doit inclure à la fois les paramètres De répétition et RepetitionDuration. Pour modifier la durée de répétition ou les intervalles de répétition d’autres types de déclencheurs de travail, la commande doit inclure les paramètres Une fois, At, RepetitionInterval et RepetitionDuration.

Type:TimeSpan
Position:Named
Valeur par défaut:0
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-User

Spécifie les utilisateurs qui déclenchent un AtLogon début d’un travail planifié. Entrez le nom d’un utilisateur au format <UserName> ou <Domain\Username> format ou entrez un astérisque (*) pour représenter tous les utilisateurs. La valeur par défaut est tous les utilisateurs.

Type:String
Position:Named
Valeur par défaut:All users
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Weekly

Spécifie une planification périodique des travaux hebdomadaires. Utilisez les autres paramètres dans le paramètre Hebdomadaire défini pour spécifier les détails de la planification.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-WeeksInterval

Spécifie le nombre de semaines entre les occurrences selon une planification de travail hebdomadaire. Par exemple, la valeur 3 démarre le travail planifié sur les semaines 1, 4, 7, et ainsi de suite. La valeur par défaut est 1.

Type:Int32
Position:Named
Valeur par défaut:1
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

ScheduledJobTrigger

Vous pouvez diriger plusieurs déclencheurs de travail vers Set-JobTrigger.

Sorties

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Lorsque vous utilisez le paramètre passthru , Set-JobTrigger retourne les déclencheurs de travail qui ont été modifiés. Sinon, cette applet de commande ne génère aucune sortie.

Notes

  • Les déclencheurs de travail ont une propriété JobDefintion qui les associe au travail planifié. Lorsque vous modifiez le déclencheur de travail d’un travail planifié, le travail est modifié. Vous n’avez pas besoin d’utiliser une commande Set-ScheduledJob pour appliquer le déclencheur modifié au travail planifié.