diff --git a/Set-ScheduledTaskPowerBGInfo.ps1 b/Set-ScheduledTaskPowerBGInfo.ps1 index 759d19b..b7aeaa9 100644 --- a/Set-ScheduledTaskPowerBGInfo.ps1 +++ b/Set-ScheduledTaskPowerBGInfo.ps1 @@ -1,51 +1,51 @@ -$TaskName = "IT-Connect_PowerBGInfo_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)" +$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)" } \ No newline at end of file