about_Scheduled_Jobs_Basics

Description courte

Explique comment créer et gérer des tâches planifiées.

Description longue

Ce document montre comment effectuer des tâches de base de création et de gestion des travaux planifiés. Pour plus d’informations sur les tâches plus avancées, consultez about_Scheduled_Jobs_Advanced.

Pour plus d’informations sur les applets de commande contenues dans le module PSScheduledJob , consultez PSScheduledJob.

Guide pratique pour créer un travail planifié

Pour créer un travail planifié, utilisez l’applet de Register-ScheduledJob commande. L’applet de commande nécessite un nom et les commandes ou le script exécutés par le travail. Vous pouvez exécuter le travail immédiatement en ajoutant le paramètre RunNow , ou en créant un déclencheur de travail et en définissant des options de travail lorsque vous créez le travail ou modifiez un travail existant.

Pour créer un travail qui exécute un script, utilisez le paramètre FilePath pour spécifier le chemin d’accès au fichier de script. Pour créer un travail qui exécute des commandes, utilisez le paramètre ScriptBlock .

L’applet Register-ScheduledJob de commande crée ProcessJob, qui exécute une Get-Process commande. Ce travail planifié a les options de travail par défaut et aucun déclencheur de travail.

Register-ScheduledJob -Name ProcessJob -ScriptBlock { Get-Process }
Id         Name            Triggers        Command       Enabled
--         ----            --------        -------       -------
8          ProcessJob      {}              Get-Process   True

Comment créer un déclencheur de travail

Les déclencheurs de travail démarrent automatiquement un travail planifié. Un déclencheur de travail peut être une planification ponctuelle ou périodique ou un événement, par exemple lorsqu’un utilisateur se connecte ou démarre Windows. Chaque travail peut avoir zéro, un ou plusieurs déclencheurs de travail.

Pour créer un déclencheur de travail, utilisez l’applet New-JobTrigger de commande. La commande suivante crée un déclencheur de travail qui démarre un travail tous les lundis et jeudis à 17h00. La commande enregistre le déclencheur de travail dans la $T variable.

$T = New-JobTrigger -Weekly -DaysOfWeek "Monday", "Thursday" -At "5:00 AM"

Les déclencheurs de tâche sont facultatifs. Vous pouvez démarrer un travail planifié à tout moment en ajoutant le paramètre RunNow à votre Register-ScheduledJob commande ou en utilisant les Start-Job applets de commande.

Comment ajouter un déclencheur de travail

Lorsque vous ajoutez un déclencheur de travail à un travail planifié, le déclencheur de travail est ajouté au fichier XML du travail planifié pour le travail planifié et fait partie du travail planifié.

Vous pouvez ajouter un déclencheur de travail à un travail planifié lorsque vous créez le travail planifié ou modifiez un travail existant. Vous pouvez modifier le déclencheur de travail d’un travail planifié à tout moment.

PowerShell utilise certains des mêmes déclencheurs de travail que le Planificateur de tâches utilise. Pour plus d’informations sur les déclencheurs de travail, consultez la rubrique d’aide de l’applet de commande New-JobTrigger .

L’exemple suivant utilise la mise en forme pour créer $JobParms des valeurs de paramètre qui sont passées à l’applet Register-ScheduledJob de commande. Pour plus d’informations, consultez about_Splatting.md. Utilisations Register-ScheduledJob@JobParms pour créer un travail planifié. Il utilise le paramètre Déclencheur pour spécifier le déclencheur de travail dans la $T variable.

$JobParms = @{
  Name = "ProcessJob"
  ScriptBlock = {Get-Command}
  Trigger = $T
}

Register-ScheduledJob @JobParms

Vous pouvez également ajouter un déclencheur de travail à un travail planifié existant à tout moment. L’applet Add-JobTrigger de commande ajoute le déclencheur de travail dans la $T variable au travail planifié ProcessJob .

Add-JobTrigger -Name ProcessJob -Trigger $T

Par conséquent, le déclencheur de travail démarre le ProcessJob automatiquement tous les lundis et jeudis à 17h00.

Comment obtenir un déclencheur de travail

Pour obtenir le déclencheur de travail d’un travail planifié, utilisez l’applet Get-JobTrigger de commande. Utilisez les paramètres Name, ID et InputObject pour spécifier le travail planifié, et non le déclencheur de travail.

Get-JobTrigger obtient le déclencheur de travail de ProcessJob.

Get-JobTrigger -Name ProcessJob
Id   Frequency       Time                   DaysOfWeek              Enabled
--   ---------       ----                   ----------              -------
1    Weekly          11/7/2011 5:00:00 AM   {Monday, Thursday}      True

Guide pratique pour créer des options de travail

Les options de travail établissent des conditions de démarrage et d’exécution du travail. Chaque travail a les options de travail par défaut, sauf si vous les modifiez. Étant donné que les options de travail peuvent empêcher l’exécution d’un travail à l’heure planifiée, il est important de comprendre les options de travail et de les utiliser soigneusement.

PowerShell utilise les mêmes options de travail que celles que le planificateur de tâches utilise. Pour plus d’informations sur les options de travail, consultez la rubrique d’aide pour New-ScheduledJobOption.

Les options de travail sont stockées dans le fichier XML de travail planifié. Vous pouvez définir des options de travail lorsque vous créez un travail planifié ou modifiez-les à tout moment.

L’applet New-ScheduledJobOption de commande crée une option de travail planifiée dans laquelle l’option de travail planifiée WakeToRun a la valeur True. L’option WakeToRun exécute la tâche planifiée même si l’ordinateur est dans l’état veille ou veille prolongée à l’heure de début planifiée. La commande enregistre les options de travail dans la $O variable.

$O = New-ScheduledJobOption -WakeToRun

Comment obtenir des options de travail

Pour obtenir les options de travail d’un travail planifié, utilisez l’applet Get-ScheduledJobOption de commande. Utilisez les paramètres Name, ID et InputObject pour spécifier le travail planifié, et non les options de travail.

Get-ScheduledJobOption obtient les options de travail de ProcessJob.

Get-ScheduledJobOption -Name ProcessJob
StartIfOnBatteries     : False
StopIfGoingOnBatteries : True
WakeToRun              : False
StartIfNotIdle         : True
StopIfGoingOffIdle     : False
RestartOnIdleResume    : False
IdleDuration           : 00:10:00
IdleTimeout            : 01:00:00
ShowInTaskScheduler    : True
RunElevated            : False
RunWithoutNetwork      : True
DoNotAllowDemandStart  : False
MultipleInstancePolicy : IgnoreNew
JobDefinition          : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Comment modifier les options de travail

Vous pouvez modifier les options de travail d’un travail planifié lorsque vous créez un travail planifié ou modifiez un travail existant.

Le splatted $JobParms est transmis à l’applet Add-JobTrigger de commande pour créer le travail de processus. Il utilise le paramètre ScheduledJobOption pour spécifier les options de travail dans la $O variable.

$JobParms = @{
  Name = "ProcessJob"
  ScriptBlock = {Get-Process}
  ScheduledJobOption = $O
}

Add-JobTrigger @JobParms

Vous pouvez également modifier les options de travail en un travail planifié existant à tout moment. La commande suivante utilise l’applet Set-ScheduledJobOption de commande pour modifier la valeur de l’option WakeToRun de l’objet ProcessJob scheduledJob sur True.

Les Set applets de commande du module PSScheduledJob , telles que l’applet Set-ScheduledJobOption de commande, n’ont pas de paramètres Nom ou ID . Vous pouvez utiliser le paramètre InputObject pour spécifier les options de travail planifiées ou diriger un travail planifié de l’applet de Get-ScheduledJobOption commande vers Set-ScheduledJobOption.

Cet exemple utilise l’applet Get-ScheduledJob de commande pour obtenir ProcessJob. Il utilise l’applet Get-ScheduledJobOption de commande pour obtenir les options de travail dans ProcessJob et l’applet Set-ScheduledJobOption de commande pour modifier l’option de travail WakeToRun dans ProcessJob sur True.

Get-ScheduledJob -Name ProcessJob | Get-ScheduledJobOption |
 Set-ScheduledJobOption -WakeToRun

Comment obtenir des instances de travail planifiées

Lorsqu’un travail planifié est démarré, PowerShell crée une instance de travail similaire à une tâche en arrière-plan PowerShell standard. Vous pouvez utiliser les applets de commande de travail, telles que Get-Job, Stop-Job et Receive-Job pour gérer les instances de travail.

Remarque

Pour utiliser les applets de commande de travail sur les instances de travaux planifiés, le module PSScheduledJob doit être importé dans la session. Pour importer le module PSScheduledJob , tapez Import-Module PSScheduledJob ou utilisez n’importe quelle applet de commande de travail planifiée, telle que Get-ScheduledJob.

Pour obtenir toutes les instances des travaux planifiés PowerShell et toutes les tâches standard actives, utilisez l’applet Get-Job de commande. L’applet Import-Module de commande importe le module PSScheduledJob et Get-Job obtient les travaux sur l’ordinateur local.

Import-Module PSScheduledJob
Get-Job

Get-Job obtient les instances de ProcessJob sur l’ordinateur local.

Get-Job -Name ProcessJob
Id     Name        PSJobTypeName  State    HasMoreData   Location   Command
--     ----        ------------   -----    -----------   --------   -------
45     ProcessJob  PSScheduledJob Completed       True   localhost   Get-Process
46     ProcessJob  PSScheduledJob Completed       True   localhost   Get-Process
47     ProcessJob  PSScheduledJob Completed       True   localhost   Get-Process
48     ProcessJob  PSScheduledJob Completed       True   localhost   Get-Process
49     ProcessJob  PSScheduledJob Completed       True   localhost   Get-Process
50     ProcessJob  PSScheduledJob Completed       True   localhost   Get-Process
51     ProcessJob  PSScheduledJob Completed       True   localhost   Get-Process

L’affichage par défaut n’affiche pas l’heure de début, qui distingue généralement les instances du même travail planifié.

L’applet Get-Job de commande envoie des objets vers le bas du pipeline. L’applet Format-Table de commande affiche les propriétés Name, ID et BeginTime du travail planifié.

Get-Job ProcessJob | Format-Table -Property Name, ID, BeginTime
Name       Id BeginTime
----       -- ---------
ProcessJob 43 11/2/2011 3:00:02 AM
ProcessJob 44 11/3/2011 3:00:02 AM
ProcessJob 45 11/4/2011 3:00:02 AM
ProcessJob 46 11/5/2011 3:00:02 AM
ProcessJob 47 11/6/2011 3:00:02 AM
ProcessJob 48 11/7/2011 12:00:01 AM
ProcessJob 49 11/7/2011 3:00:02 AM
ProcessJob 50 11/8/2011 3:00:02 AM

Obtenir les résultats de travaux planifiés

Pour obtenir les résultats d’une instance d’un travail planifié, utilisez l’applet Receive-Job de commande.

Remarque

Pour utiliser les applets de commande Job sur les instances de travaux planifiés, le module PSScheduledJob doit être importé dans la session. Pour importer le module PSScheduledJob , tapez Import-Module PSScheduledJob ou utilisez n’importe quelle applet de commande de travail planifiée, telle que Get-ScheduledJob.

Cet exemple obtient les résultats de la dernière instance du travail planifié ProcessJob (ID = 51).

Import-Module PSScheduledJob
Receive-Job -ID 51 -Keep

Les résultats des travaux planifiés sont enregistrés sur le disque. Par conséquent, le paramètre Keep n’est Receive-Job pas obligatoire. Toutefois, sans le paramètre Keep , vous pouvez obtenir les résultats d’un travail planifié une seule fois dans chaque session PowerShell. Pour démarrer une nouvelle session PowerShell, tapez PowerShell ou ouvrez une nouvelle fenêtre PowerShell.

Voir aussi