Create shutdown.ps1

This commit is contained in:
jfontaine35 2024-03-26 09:03:19 +01:00 committed by GitHub
parent b111fb5fc1
commit bb20226fbd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 52 additions and 0 deletions

52
shutdown.ps1 Normal file
View File

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