Tâches planifiées Windows
Guide des tâches planifiées Windows sur VPS RedHeberg
Les tâches planifiées Windows permettent d'automatiser l'exécution de scripts, programmes ou commandes sur votre VPS Windows RedHeberg. Cette documentation couvre les méthodes d'interface graphique et PowerShell avec des exemples pratiques.
Planificateur de tâches (Interface graphique)
Accès au Planificateur de tâches
- Connectez-vous à votre VPS Windows RedHeberg via RDP
- Ouvrez le Gestionnaire de serveur
- Allez dans Outils → Planificateur de tâches
Ou directement :
- Appuyez sur
Windows + R - Tapez
taskschd.mscet validez
Création d'une tâche basique
-
Dans le panneau Actions, cliquez sur Créer une tâche...
-
Onglet Général :
- Nom :
Mon Script Automatique - Description : Description de votre tâche
- Cochez Exécuter même si l'utilisateur n'est pas connecté
- Sélectionnez Exécuter avec les privilèges les plus élevés
- Nom :
-
Onglet Déclencheurs :
- Cliquez Nouveau...
- Choisissez la fréquence (Quotidienne, Hebdomadaire, etc.)
- Configurez l'heure et la récurrence
-
Onglet Actions :
- Cliquez Nouveau...
- Action : Démarrer un programme
- Programme/script : Chemin vers votre exécutable ou script
-
Onglet Conditions : Configurez selon vos besoins
-
Onglet Paramètres : Options avancées
-
Cliquez OK pour créer la tâche
Gestion via PowerShell
Création d'une tâche planifiée
# Créer une action (script à exécuter)
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\MonScript.ps1"
# Créer un déclencheur (tous les jours à 02h00)
$Trigger = New-ScheduledTaskTrigger -Daily -At "02:00"
# Créer les paramètres de la tâche
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
# Créer le principal (utilisateur qui exécute la tâche)
$Principal = New-ScheduledTaskPrincipal -UserID "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
# Enregistrer la tâche
Register-ScheduledTask -TaskName "MonScriptQuotidien" -Action $Action -Trigger $Trigger -Settings $Settings -Principal $Principal -Description "Script d'automatisation quotidien"
Gestion des tâches existantes
# Lister toutes les tâches
Get-ScheduledTask
# Obtenir les détails d'une tâche spécifique
Get-ScheduledTask -TaskName "MonScriptQuotidien"
# Démarrer une tâche manuellement
Start-ScheduledTask -TaskName "MonScriptQuotidien"
# Arrêter une tâche en cours
Stop-ScheduledTask -TaskName "MonScriptQuotidien"
# Supprimer une tâche
Unregister-ScheduledTask -TaskName "MonScriptQuotidien" -Confirm:$false
Exemples pratiques
Redémarrage automatique d'un serveur de jeu
# Script de redémarrage (sauvegarder sous C:\Scripts\RestartGameServer.ps1)
# Arrêt propre du serveur
Stop-Process -Name "gameserver" -Force -ErrorAction SilentlyContinue
Start-Sleep -Seconds 10
# Redémarrage du serveur
Start-Process -FilePath "C:\GameServer\gameserver.exe" -WorkingDirectory "C:\GameServer"
# Création de la tâche planifiée
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\RestartGameServer.ps1"
$Trigger = New-ScheduledTaskTrigger -Daily -At "04:00"
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
$Principal = New-ScheduledTaskPrincipal -UserID "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "RedemarragServeurJeu" -Action $Action -Trigger $Trigger -Settings $Settings -Principal $Principal
Script de sauvegarde automatique
# Script de backup (sauvegarder sous C:\Scripts\BackupData.ps1)
$Source = "C:\ImportantData"
$Destination = "D:\Backups\$(Get-Date -Format 'yyyy-MM-dd')"
# Créer le dossier de destination
New-Item -ItemType Directory -Path $Destination -Force
# Copier les fichiers
Copy-Item -Path $Source -Destination $Destination -Recurse -Force
# Log de l'opération
$LogFile = "C:\Scripts\backup.log"
$LogEntry = "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - Sauvegarde terminée vers $Destination"
Add-Content -Path $LogFile -Value $LogEntry
# Création de la tâche (backup hebdomadaire le dimanche)
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\BackupData.ps1"
$Trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At "01:00"
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries
$Principal = New-ScheduledTaskPrincipal -UserID "SYSTEM" -LogonType ServiceAccount
Register-ScheduledTask -TaskName "SauvegardeHebdomadaire" -Action $Action -Trigger $Trigger -Settings $Settings -Principal $Principal
Notification par email
# Script de notification (sauvegarder sous C:\Scripts\SendNotification.ps1)
$SmtpServer = "smtp.votre-fournisseur.com"
$SmtpPort = 587
$EmailFrom = "votre-vps@redheberg.fr"
$EmailTo = "admin@votredomaine.com"
$Subject = "Rapport VPS RedHeberg - $(Get-Date -Format 'dd/MM/yyyy')"
# Informations système
$CPUUsage = Get-Counter '\Processor(_Total)\% Processor Time' | Select-Object -ExpandProperty CounterSamples | Select-Object -ExpandProperty CookedValue
$MemoryUsage = Get-CimInstance -ClassName Win32_OperatingSystem | ForEach-Object {"{0:N2}" -f ((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory)*100)/ $_.TotalVisibleMemorySize)}
$Body = @"
Rapport quotidien VPS RedHeberg :
CPU : $([math]::Round($CPUUsage, 2))%
Mémoire : $MemoryUsage%
Heure : $(Get-Date)
"@
# Envoi de l'email
Send-MailMessage -SmtpServer $SmtpServer -Port $SmtpPort -From $EmailFrom -To $EmailTo -Subject $Subject -Body $Body -Credential (Get-Credential)
Gestion des erreurs et logs
Configuration des logs dans une tâche