Partager via


Set-ScheduledJob

Modifie les tâches planifiées.

Syntaxe

Set-ScheduledJob
   [-Name <String>]
   [-ScriptBlock <ScriptBlock>]
   [-Trigger <ScheduledJobTrigger[]>]
   [-InitializationScript <ScriptBlock>]
   [-RunAs32]
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-ScheduledJobOption <ScheduledJobOptions>]
   [-InputObject] <ScheduledJobDefinition>
   [-MaxResultCount <Int32>]
   [-PassThru]
   [-ArgumentList <Object[]>]
   [-RunNow]
   [-RunEvery <TimeSpan>]
   [<CommonParameters>]
Set-ScheduledJob
   [-Name <String>]
   [-FilePath <String>]
   [-Trigger <ScheduledJobTrigger[]>]
   [-InitializationScript <ScriptBlock>]
   [-RunAs32]
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-ScheduledJobOption <ScheduledJobOptions>]
   [-InputObject] <ScheduledJobDefinition>
   [-MaxResultCount <Int32>]
   [-PassThru]
   [-ArgumentList <Object[]>]
   [-RunNow]
   [-RunEvery <TimeSpan>]
   [<CommonParameters>]
Set-ScheduledJob
   [-InputObject] <ScheduledJobDefinition>
   [-ClearExecutionHistory]
   [-PassThru]
   [<CommonParameters>]

Description

L’applet Set-ScheduledJob de commande modifie les propriétés des travaux planifiés, telles que les commandes exécutées par les travaux ou les informations d’identification requises pour exécuter le travail. Vous pouvez également l'utiliser pour effacer l'historique d'exécution de la tâche planifiée.

Pour utiliser cette applet de commande, commencez par utiliser l’applet Get-ScheduledJob de commande pour obtenir le travail planifié. Ensuite, dirigez le travail planifié vers Set-ScheduledJob ou enregistrez le travail dans une variable et utilisez le paramètre InputObject pour identifier le travail. Utilisez les paramètres restants pour modifier les propriétés du Set-ScheduledJob travail ou effacer l’historique d’exécution.

Bien que vous puissiez utiliser Set-ScheduledJob pour modifier les déclencheurs et les options d’un travail planifié, les Add-JobTriggerapplets de commande et Set-ScheduledJobOption les Set-JobTriggerapplets de commande offrent des moyens beaucoup plus faciles d’accomplir ces tâches. Pour créer un travail planifié, utilisez l’applet de Register-ScheduledJob commande.

Paramètre Déclencheur d’ajout d’un ou de plusieurs déclencheurs de Set-ScheduledJob travail qui démarrent le travail. Le paramètre Déclencheur est facultatif. Vous pouvez donc ajouter des déclencheurs lorsque vous créez le travail planifié, ajouter des déclencheurs de travail ultérieurement, ajouter le paramètre RunNow pour démarrer le travail immédiatement, utiliser l’applet Start-Job de commande pour démarrer le travail immédiatement à tout moment ou enregistrer le travail planifié sans détrigueur comme modèle pour d’autres travaux.

Set-ScheduledJob est l’une des collections d’applets de commande de planification de travaux dans le module PSScheduledJob inclus dans Windows PowerShell.

Pour plus d'informations sur les tâches planifiées, consultez les rubriques À propos dans le 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 le script exécuté par un travail

Cet exemple montre comment modifier le script qui est exécuté dans une tâche planifiée.

Get-ScheduledJob -Name "Inventory"

Id         Name            Triggers        Command                                  Enabled
--         ----            --------        -------                                  -------
1          Inventory       {1}             C:\Scripts\Get-Inventory.ps1             True

Get-ScheduledJob -Name "Inventory" | Set-ScheduledJob -FilePath "C:\Scripts\Get-FullInventory.ps1" -PassThru

Id         Name            Triggers        Command                                  Enabled
--         ----            --------        -------                                  -------
1          Inventory       {1}             C:\Scripts\Get-FullInventory.ps1         True

La première commande utilise l’applet Get-ScheduledJob de commande pour obtenir le travail planifié d’inventaire. La sortie indique que la tâche exécute le script Get-Inventory.ps1.

La deuxième commande utilise l’applet Get-ScheduledJob de commande pour obtenir le travail planifié d’inventaire. Un opérateur de pipeline (|) envoie le travail planifié à l’applet de Set-ScheduledJob commande. L’applet Set-ScheduledJob de commande utilise le paramètre Script pour spécifier un nouveau script. Get-FullInventory.ps1 La commande utilise le paramètre PassThru pour retourner le travail planifié après la modification.

Cette commande n'est pas obligatoire ; elle est incluse uniquement pour montrer l'effet de la modification du script.

Exemple 2 : Supprimer l’historique d’exécution d’un travail planifié

Cet exemple montre comment supprimer l’historique d’exécution actuel et enregistrer les résultats d’un travail planifié.

Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory

La commande utilise l’applet Get-ScheduledJob de commande pour obtenir le travail planifié BackupArchive. Un opérateur de pipeline (|) envoie le travail à l’applet de commande pour le Set-ScheduledJob modifier. L’applet Set-ScheduledJob de commande utilise le paramètre ClearExecutionHistory pour supprimer l’historique d’exécution et enregistrer les résultats.

Pour plus d’informations sur l’historique d’exécution et les résultats enregistrés des travaux planifiés, consultez about_Scheduled_Jobs.

Exemple 3 : Modifier les travaux planifiés sur un ordinateur distant

Cette commande modifie le script d’initialisation dans tous les travaux planifiés sur les ordinateurs distants.

Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob |
    Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}

La commande utilise l’applet Invoke-Command de commande pour exécuter une commande sur les ordinateurs Server01 et Server02.

La commande distante commence par une Get-ScheduledJob commande qui obtient tous les travaux planifiés sur l’ordinateur. Les travaux planifiés sont redirigés vers l’applet Set-ScheduledJob de commande, ce qui modifie le script SetForRun.ps1d’initialisation en .

Paramètres

-ArgumentList

Spécifie les valeurs des paramètres du script spécifiés par le paramètre FilePath ou pour la commande spécifiée par le paramètre ScriptBlock .

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

-Authentication

Spécifie le mécanisme permettant d'authentifier les informations d'identification de l'utilisateur. Les valeurs valides pour ce paramètre sont :

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

La valeur par défaut est Default. Pour plus d’informations sur les valeurs de ce paramètre, consultez l’énumération AuthenticationMechanism dans le Kit de développement logiciel (SDK) PowerShell.

Attention

L’authentification CredSSP (Credential Security Support Provider), dans laquelle les informations d’identification de l’utilisateur sont transmises à un ordinateur distant à authentifier, est conçue pour les commandes qui nécessitent une authentification sur plusieurs ressources, telles que l’accès à un partage réseau distant. Ce mécanisme augmente le risque de sécurité lié à l'opération distante. Si l'ordinateur distant n'est pas fiable, les informations d'identification qui lui sont passées peuvent être utilisées pour contrôler la session réseau.

Type:AuthenticationMechanism
Valeurs acceptées:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ClearExecutionHistory

Supprime l'historique d'exécution actuel et les résultats enregistrés de la tâche planifiée.

L’historique d’exécution du travail et les résultats du travail sont enregistrés avec le travail planifié dans le $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs répertoire sur l’ordinateur sur lequel le travail est créé. Pour afficher l’historique d’exécution, utilisez l’applet de Get-Job commande. Pour obtenir les résultats du travail, utilisez l’applet Receive-Job de commande.

Ce paramètre n'affecte pas les événements écrits par le Planificateur de tâches dans les journaux des événements Windows et n'empêche pas Windows PowerShell d'enregistrer les résultats de la tâche. Pour gérer le nombre de résultats de travail enregistrés, utilisez le paramètre MaxResultCount .

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

-Credential

Spécifie un compte d'utilisateur qui a l'autorisation d'exécuter la tâche planifiée. La valeur par défaut est l’utilisateur actuel.

Tapez un nom d’utilisateur, tel que User01 ou Domain01\User01, ou entrez un objet PSCredential , tel qu’un de l’applet Get-Credential de commande. Si vous entrez uniquement un nom d'utilisateur, vous êtes invité à entrer un mot de passe.

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

-FilePath

Spécifie un script exécuté par la tâche planifiée. Entrez le chemin d'accès à un fichier .ps1 sur l'ordinateur local. Pour spécifier des valeurs par défaut pour les paramètres de script, utilisez le paramètre ArgumentList . Chaque travail planifié doit avoir une valeur ScriptBlock ou FilePath .

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

-InitializationScript

Spécifie le chemin complet d’un script Windows PowerShell (.ps1). Le script d’initialisation s’exécute dans la session créée pour le travail en arrière-plan avant les commandes spécifiées par le paramètre ScriptBlock ou le script spécifié par le paramètre FilePath . Vous pouvez utiliser le script d'initialisation pour configurer la session, par exemple, pour ajouter des fichiers, des fonctions ou des alias, pour créer des répertoires ou pour vérifier des conditions préalables.

Pour spécifier un script qui exécute les commandes de travail principale, utilisez le paramètre FilePath .

Si le script d’initialisation génère une erreur, y compris une erreur sans fin, l’instance actuelle du travail planifié ne s’exécute pas et son état a échoué.

Type:ScriptBlock
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 la tâche planifiée à modifier. Entrez une variable qui contient des objets ScheduledJobDefinition ou tapez une commande ou une expression qui obtient des objets ScheduledJobDefinition , tels qu’une Get-ScheduledJob commande. Vous pouvez également diriger un objet ScheduledJobDefinition vers Set-ScheduledJob.

Si vous spécifiez plusieurs travaux planifiés, Set-ScheduledJob apporte les mêmes modifications à tous les travaux.

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

-MaxResultCount

Spécifie le nombre d'entrées de résultat de tâche qui sont conservées pour la tâche planifiée. La valeur par défaut est 32.

Windows PowerShell enregistre l'historique d'exécution et les résultats de chaque instance déclenchée de la tâche planifiée sur le disque. La valeur de ce paramètre détermine le nombre de résultats d'instance de tâche qui sont enregistrés pour cette tâche planifiée. Quand le nombre de résultats d'instance de tâche dépasse cette valeur, Windows PowerShell supprime les résultats de l'instance de tâche la plus ancienne pour libérer de l'espace pour les résultats de la dernière instance de tâche.

L’historique d’exécution du travail et les résultats du travail sont enregistrés dans le $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp> répertoires sur l’ordinateur sur lequel le travail est créé. Pour afficher l’historique d’exécution, utilisez l’applet de Get-Job commande. Pour obtenir les résultats du travail, utilisez l’applet Receive-Job de commande.

Le paramètre MaxResultCount définit la valeur de la propriété ExecutionHistoryLength du travail planifié.

Pour supprimer l’historique d’exécution actuel et les résultats du travail, utilisez le paramètre ClearExecutionHistory .

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

-Name

Spécifie un nouveau nom pour la tâche planifiée et les instances de la tâche planifiée. Le nom doit être unique sur l'ordinateur local.

Pour identifier le travail planifié à modifier, utilisez le paramètre InputObject ou dirigez un travail planifié vers Get-ScheduledJob Set-ScheduledJob.

Ce paramètre ne modifie pas les noms des instances de tâche sur le disque. Il affecte uniquement les instances de tâche qui sont démarrées à l'issue de cette commande.

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

-PassThru

Retourne un objet représentant l’élément que vous utilisez. Par défaut, cette applet de commande ne génère aucun résultat.

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

-RunAs32

Exécute la tâche planifiée dans un processus 32 bits.

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

-RunEvery

Permet de spécifier la fréquence à laquelle exécuter le travail. Par exemple, utilisez cette option pour exécuter un travail toutes les 15 minutes.

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

-RunNow

Démarre immédiatement un travail, dès que l’applet Set-ScheduledJob de commande est exécutée. Ce paramètre évite d'avoir à déclencher le Planificateur de tâches pour exécuter un script Windows PowerShell immédiatement après l'inscription et n'oblige pas les utilisateurs à créer un déclencheur qui spécifie une date et une heure de début.

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

-ScheduledJobOption

Définit les options de la tâche planifiée. Entrez un objet ScheduledJobOptions , tel qu’un objet que vous créez à l’aide de l’applet New-ScheduledJobOption de commande ou une valeur de table de hachage.

Vous pouvez définir des options pour un travail planifié lorsque vous inscrivez le travail planifié ou utilisez les applets de commande ou Set-ScheduledJob définissez Set-ScheduledJobOption ou modifiez les options.

La plupart des options et leurs valeurs par défaut déterminent si et quand une tâche planifiée s'exécute. Veillez à consulter ces options avant de planifier une tâche. Pour obtenir une description des options de travail planifiées, y compris les valeurs par défaut, consultez New-ScheduledJobOption.

Pour envoyer une table de hachage, utilisez les clés suivantes. Dans la table de hachage suivante, les clés sont affichées avec leurs valeurs par défaut.

@{# Power SettingsStartIfOnBattery=$False;StopIfGoingOnBattery=$True; WakeToRun=$False; # Idle SettingsStartIfNotIdle=$False; IdleDuration="00:10:00"; IdleTimeout="01:00:00"; StopIfGoingOffIdle=$True; RestartOnIdleResume=$False;# Security settingsShowInTaskScheduler=$TrueRunElevated=$False;# MiscRunWithoutNetwork=$False;DoNotAllowDemandStart=$False;MultipleInstancePolicy=IgnoreNew# Can be IgnoreNew, Parallel, Queue, StopExisting}

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

-ScriptBlock

Spécifie les commandes exécutées par la tâche planifiée. Placez les commandes dans les accolades ({}) pour créer un bloc de script. Pour spécifier des valeurs par défaut pour les paramètres de commande, utilisez le paramètre ArgumentList .

Chaque Register-ScheduledJob commande doit utiliser les paramètres ScriptBlock ou FilePath .

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

-Trigger

Spécifie les déclencheurs de la tâche planifiée. Entrez un ou plusieurs objets ScheduledJobTrigger , tels que les objets retournés par l’applet New-JobTrigger de commande, ou une table de hachage des clés et des valeurs du déclencheur de travail.

Un déclencheur de travail démarre automatiquement un travail planifié sur une planification ponctuelle ou périodique ou lorsqu’un événement se produit.

Les déclencheurs de tâche sont facultatifs. Vous pouvez ajouter un déclencheur lorsque vous créez le travail planifié, utilisez le ou Set-ScheduledJob les Add-JobTrigger applets de commande pour ajouter des déclencheurs ultérieurement ou utilisez l’applet Start-Job de commande pour démarrer immédiatement le travail planifié. Vous pouvez également créer et gérer une tâche planifiée qui n'a aucun déclencheur de tâche.

Pour envoyer une table de hachage, utilisez les clés suivantes.

@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (ou toute chaîne de temps valide) ; DaysOfWeek="Monday", "Wednesday" (ou toute combinaison de noms de jour) ; Interval=2 (ou tout intervalle de fréquence valide) ; RandomDelay="30minutes" (ou toute chaîne d’intervalle de temps valide) ; User="Domain1\User01" (ou tout utilisateur valide ; utilisé uniquement avec la valeur de fréquence AtLogon)

}

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

Entrées

ScheduledJobDefinition

Vous pouvez diriger un travail planifié vers cette applet de commande.

Sorties

None

Par défaut, cette applet de commande ne retourne aucune sortie.

ScheduledJobDefinition

Lorsque vous utilisez le paramètre PassThru , cette applet de commande retourne le travail planifié qu’il a modifié.