Actualiser Set-ScheduledTaskPowerBGInfo.ps1
This commit is contained in:
@@ -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)"
|
||||
}
|
||||
Reference in New Issue
Block a user