51 lines
1.8 KiB
PowerShell
51 lines
1.8 KiB
PowerShell
$TaskName = "PowerBGInfoGlobal_Refresh"
|
|
|
|
# 0. La tâche existe-t-elle déjà ?
|
|
$ExistingTask = Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue
|
|
|
|
if ($ExistingTask) {
|
|
Write-Host "La tâche '$TaskName' existe déjà : aucune modification (historique préservé)." -ForegroundColor Yellow
|
|
return
|
|
}
|
|
|
|
# 1. Action - Exécuter le script PowerShell
|
|
$Action = New-ScheduledTaskAction -Execute "powershell.exe" `
|
|
-Argument "-WindowStyle Hidden -NoProfile -ExecutionPolicy Bypass -File `"C:\ProgramData\PowerBGInfo\Set-WallpaperPowerBGInfoGlobal.ps1`""
|
|
|
|
# 2. Déclencheur : à l'ouverture de session + répétition toutes les minutes, indéfiniment
|
|
$TriggerLogon = New-ScheduledTaskTrigger -AtLogOn
|
|
|
|
$Repetition = New-CimInstance -ClassName MSFT_TaskRepetitionPattern `
|
|
-Namespace Root/Microsoft/Windows/TaskScheduler `
|
|
-Property @{
|
|
Interval = "PT5M"
|
|
Duration = "P1D"
|
|
} -ClientOnly
|
|
|
|
$TriggerLogon.Repetition = $Repetition
|
|
|
|
# 3. Paramètres
|
|
$Settings = New-ScheduledTaskSettingsSet `
|
|
-AllowStartIfOnBatteries `
|
|
-DontStopIfGoingOnBatteries `
|
|
-StartWhenAvailable `
|
|
-MultipleInstances IgnoreNew
|
|
|
|
# 4. Contexte utilisateur (groupe "Utilisateurs" via le SID)
|
|
$Principal = New-ScheduledTaskPrincipal -GroupId "S-1-5-32-545" -RunLevel Limited
|
|
|
|
# 5. Enregistrement la tâche planifiée (pour la créer)
|
|
try {
|
|
Register-ScheduledTask -TaskName $TaskName `
|
|
-Description "Actualise le fond d'écran dynamique toutes les 5 minutes" `
|
|
-Action $Action `
|
|
-Trigger $TriggerLogon `
|
|
-Settings $Settings `
|
|
-Principal $Principal `
|
|
-ErrorAction Stop | Out-Null
|
|
|
|
Write-Host "Tâche '$TaskName' créée avec succès." -ForegroundColor Green
|
|
}
|
|
catch {
|
|
Write-Error "Échec de la création de la tâche : $($_.Exception.Message)"
|
|
} |