poweroff/shutdown.ps1

53 lines
1.5 KiB
PowerShell

## 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')