web-dev-qa-db-fra.com

Comment exécuter un script PowerShell automatiquement à l'aide du planificateur de tâches Windows?

J'ai un script PowerShell qui envoie des emails. Je veux exécuter ce script automatiquement, toutes les 1 minute. Comment puis-je le faire en utilisant le planificateur de tâches?

Actuellement, j'ai créé une tâche et fourni le chemin de mon script. Mais ce planificateur ouvre mon script, au lieu de l’exécuter.

60
AK47

Créez la tâche planifiée et définissez l'action sur:

Programme/Script: Powershell.exe

Arguments: -File "C:\Users\MyUser\Documents\ThisisMyFile.ps1"

91
Kevin_

Voici un exemple utilisant PowerShell 3.0 ou 4.0 pour -RepeatIndefinitely et jusqu'à:

# Trigger
$middayTrigger = New-JobTrigger -Daily -At "12:40 AM"
$midNightTrigger = New-JobTrigger -Daily -At "12:00 PM"
$atStartupeveryFiveMinutesTrigger = New-JobTrigger -once -At $(get-date) -RepetitionInterval $([timespan]::FromMinutes("1")) -RepeatIndefinitely

# Options
$option1 = New-ScheduledJobOption –StartIfIdle

$scriptPath1 = 'C:\Path and file name 1.PS1'
$scriptPath2 = "C:\Path and file name 2.PS1"

Register-ScheduledJob -Name ResetProdCache -FilePath $scriptPath1 -Trigger  $middayTrigger,$midNightTrigger -ScheduledJobOption $option1
Register-ScheduledJob -Name TestProdPing -FilePath $scriptPath2 -Trigger $atStartupeveryFiveMinutesTrigger
14
JPBlanc

Au lieu d'utiliser uniquement le chemin d'accès à votre script dans le planificateur de tâches, vous devez démarrer PowerShell avec votre script dans le planificateur de tâches, par exemple.

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -NonInteractive -File "C:\Path\To\Your\PS1File.ps1"

Voir powershell /? pour une explication de ces commutateurs.

Si vous avez toujours des problèmes, vous devriez lire cette question .

6
Ocaso Protal

Dans mon cas, mon script a des paramètres, alors j'ai défini:

Arguments: -Command "& C:\scripts\myscript.ps1 myParam1 myParam2"

4
Carlos Coelho

Vous pouvez utiliser la cmdlet Unblock-File pour débloquer l'exécution de ce script spécifique. Cela vous empêche de faire des changements de politique permanents que vous ne voudrez peut-être pas pour des raisons de sécurité.

Unblock-File path_to_your_script

Source: nblock-File

2
AlexeyGy

Après plusieurs heures de test et de recherche sur Internet, j'ai enfin trouvé comment démarrer mon script PowerShell avec un planificateur de tâches, grâce à la vidéo Planification d'un script PowerShell à l'aide de Windows Task Planificateur de Jack Fruh @sharepointjack.

Programme/script -> mettre le chemin complet à travers powershell.exe

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

Ajouter des arguments -> Chemin complet du script, et le script, sans "".

Démarrer dans (facultatif) -> Le répertoire dans lequel réside votre script, sans "".

2
Mickael