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.