Automatiser les tâches planifiées avec PowerShell

Créez et gérez le Planificateur de tâches Windows avec l'automatisation PowerShell. Ignorez l'interface graphique et utilisez la cmdlet Register-ScheduledTask pour un déploiement évolutif des tâches sur les serveurs EC2. Inclut des exemples pratiques et des conseils de dépannage.

2 min read
PowerShell Planificateur Automatisation

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.

Prêt à automatiser la gestion de vos instances EC2 ?

Obtenez une assistance d'infrastructure alimentée par l'IA 24h/24 et 7j/7 dans Microsoft Teams. SmartOps aide votre équipe à gérer, surveiller et optimiser les instances EC2 pour seulement 199 $/mois.