Les tâches planifiées sont une pierre angulaire de l’automatisation sur les serveurs Windows—mais les configurer manuellement via le Planificateur de tâches est lent, sujet aux erreurs et complètement non évolutif. 😩
Que vous souhaitiez exécuter un script de nettoyage nocturne, déclencher une vérification de conformité toutes les heures ou redémarrer une application récalcitrante tous les dimanches, PowerShell est votre ami. Dans cet article, nous vous montrerons comment créer, configurer et dépanner des tâches planifiées entièrement depuis la ligne de commande.
💡 Bonus : Si vous utilisez Ohlala Operations, vous pouvez exécuter ces commandes PowerShell sur vos instances EC2 directement—sans RDP ni GPO.
⚙️ Étape 1 : Définir l’action
Chaque tâche planifiée a besoin d’une action. Voici comment en définir une qui exécute PowerShell avec un script spécifique :
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\Scripts\cleanup.ps1"
Vous pouvez également exécuter des commandes en ligne :
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-Command `"Get-Process | Out-File C:\temp\procs.txt`""
⏰ Étape 2 : Définir le déclencheur
Vous voulez que la tâche s’exécute quotidiennement à 2h du matin ? Utilisez un déclencheur basé sur l’heure :
$trigger = New-ScheduledTaskTrigger -Daily -At 2am
Besoin de plus de contrôle ? Vous pouvez créer des déclencheurs hebdomadaires, à la connexion ou ponctuels :
# Tous les dimanches à 3h du matin
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 3am
👤 Étape 3 : Définir le principal (qui l’exécute)
Par défaut, les tâches s’exécutent en tant qu’utilisateur actuel. Mais sur un serveur, vous voulez généralement SYSTEM ou un compte de service :
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Remplacez "SYSTEM"
par un utilisateur de domaine si nécessaire.
🧩 Étape 4 : Enregistrer la tâche
Maintenant, assemblez le tout :
Register-ScheduledTask -TaskName "NettoyageNocturne" `
-Action $action `
-Trigger $trigger `
-Principal $principal `
-Description "Supprime les anciens fichiers temporaires chaque nuit à 2h du matin"
Cette tâche est maintenant prête et visible sous Planificateur de tâches > Bibliothèque du Planificateur de tâches. 🎉
🧪 Étape 5 : Vérifier et dépanner
Lister toutes les tâches :
Get-ScheduledTask
Vérifier votre tâche spécifique :
Get-ScheduledTask -TaskName "NettoyageNocturne" | Get-ScheduledTaskInfo
Vérifier le journal des événements si elle échoue silencieusement :
Get-WinEvent -LogName Microsoft-Windows-TaskScheduler/Operational |
Where-Object { $_.Message -like "*NettoyageNocturne*" } |
Select-Object TimeCreated, Id, Message -First 10
🚀 Bonus : Exécuter ceci à distance avec Ohlala
En utilisant Ohlala Operations, vous pouvez exécuter toutes les commandes PowerShell ci-dessus à distance—sur une ou plusieurs instances EC2—sans avoir besoin de RDP ou de connexions interactives. 💻🌐
Il suffit d’ouvrir le Command Runner dans l’interface Ohlala, de coller les commandes et d’exécuter. Par exemple :
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\Scripts\cleanup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At 2am
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "NettoyageNocturne" -Action $action -Trigger $trigger -Principal $principal -Description "Supprime les anciens fichiers temporaires chaque nuit à 2h du matin"
Cela vous donne un moyen facile de déployer des tâches sur plusieurs serveurs depuis une seule interface.
🛠️ À l’avenir, nous intégrerons la création de tâches planifiées directement dans les Recettes Ohlala pour rendre cela encore plus rapide et plus reproductible.
✅ Résumé
Créer des tâches planifiées avec PowerShell est simple, puissant et automatisable—ce qui en fait un excellent choix pour la gestion moderne des serveurs Windows. Oubliez l’interface graphique, oubliez les clics, et gérez vos tâches comme du code. 💪
Vous avez une tâche que vous voulez automatiser sur votre flotte Windows ? Essayez-la avec Ohlala Operations et découvrez ce que l’automatisation de serveur sans RDP peut offrir.