Files
PowerBGInfoCORPORATE/Set-ScheduledTaskPowerBGInfoCORPORATE.ps1

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-WallpaperPowerBGInfoCORPORATE.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)"
}