diff --git a/shutdown.ps1 b/shutdown.ps1 new file mode 100644 index 0000000..eaa2b8f --- /dev/null +++ b/shutdown.ps1 @@ -0,0 +1,52 @@ +## Fonction pour lister les tâches planifiées +function Get-ScheduledTasks { + $tasks = schtasks /query /fo csv | ConvertFrom-Csv + $tasks | Select-Object TaskName, NextRunTime +} + +## Fonction pour créer une tâche d'extinction +function Create-ShutdownTask { + param( + [datetime]$TriggerTime + ) + + $action = New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "-s -t 0" + $trigger = New-ScheduledTaskTrigger -Once -At $TriggerTime + Register-ScheduledTask -TaskName "ShutdownTask_$($TriggerTime.ToString('HHmm'))" -Action $action -Trigger $trigger -RunLevel Highest +} + +## Menu principal +function Show-Menu { + Clear-Host + Write-Host "================ Menu ================" + Write-Host "1. Lister les tâches planifiées" + Write-Host "2. Créer une tâche d'extinction pour 18h" + Write-Host "3. Créer une tâche d'extinction pour 21h" + Write-Host "Q. Quitter" + Write-Host "======================================" +} + +## Boucle principale +do { + Show-Menu + $choice = Read-Host "Veuillez faire un choix" + + switch ($choice) { + '1' { + Write-Host "Tâches planifiées sur la machine :" + Get-ScheduledTasks + Pause + } + '2' { + $shutdownTime = (Get-Date).Date.AddHours(18) + Create-ShutdownTask -TriggerTime $shutdownTime + } + '3' { + $shutdownTime = (Get-Date).Date.AddHours(21) + Create-ShutdownTask -TriggerTime $shutdownTime + } + 'q' { + return + } + } +} until ($choice -eq 'q')