Ceci est l'approche documentée par Microsoft pour aborder ce problème.
Remarque: Vous devez utiliser les options de réglage fournies dans les menus déroulants, même si l'interface graphique semble proposer des champs libres, ce n'est pas le cas.
Voir:
Configurer les paramètres avancés de la tâche planifiée en utilisant PowerShell
Les paramètres manquants
Super, maintenant nous avons un script, une tâche planifiée qui lance le script, et il s'exécutera à chaque fois que le serveur ou le poste de travail est démarré. Mais nous avons échoué à respecter l'une des exigences; la tâche doit également se répéter toutes les 10 minutes pendant 1 jour. Si vous essayez d'ajouter un intervalle de répétition ou une durée de répétition, vous remarquerez que ni l'un ni l'autre ne sont une option pour le paramètre -AtStartup:
À travers l'interface graphique, les paramètres de la tâche planifiée sont disponibles:
Mais ils ne sont pas disponibles via la cmdlet PowerShell New-ScheduledTaskTrigger si vous choisissez le paramètre -AtStartup. Ils sont disponibles via le paramètre -Once mais cela ne répondrait pas aux exigences. La solution est de modifier directement les propriétés de la tâche en utilisant son schéma XML. Cela peut sembler compliqué au début mais en réalité c'est très facile et vous permettra de modifier pratiquement tous les paramètres de la tâche planifiée.
Étape 1 - Obtenir la tâche planifiée. La première étape consiste à obtenir la tâche planifiée que vous venez de créer et à la stocker dans un objet.
$Task = Get-ScheduledTask -TaskName "SampleScheduledTask"
Étape 2 - Mettez à jour la propriété spécifique de la tâche que vous souhaitez modifier. Pour cet exemple, nous souhaitons ajouter une durée de répétition et un intervalle de répétition.
$Task.Triggers.Repetition.Duration = "P1D"
$Task.Triggers.Repetition.Interval = "PT10M"
Vous vous demandez probablement comment j'ai su que P1D correspondrait à une durée de 1 jour et comment j'ai su que PT10M correspondrait à un intervalle de répétition de 10 minutes puisque ce ne sont pas les valeurs de date/heure ou de temps habituelles avec lesquelles vous avez probablement l'habitude de travailler. Pour obtenir ces valeurs, j'ai simplement configuré la durée et l'intervalle que je voulais via l'interface graphique, puis j'ai consulté le résultat via Powershell en utilisant la commande suivante:
$Task.Triggers.Repetition | fl *
Étape 3 - Enregistrez la nouvelle configuration dans la tâche planifiée. N'oubliez pas, vous devez ressaisir les identifiants de la tâche ici sinon l'opération échouera.
$Task | Set-ScheduledTask -User "NT AUTHORITY\SYSTEM"