public/Update-ChocolateyTaskStatus.ps1
function Update-ChocolateyTaskStatus { param ( [string]$taskName ) # JSON file handling $path = 'C:\ProgramData\AppPkgMgr\scheduled.json' if (Test-Path -Path $path) { $scheduledTasks = Get-Content -Path $path | ConvertFrom-Json if ($taskName) { # Update the specific task by taskName $task = Get-ScheduledTaskInfo -TaskName $taskName $result = $task.LastTaskResult ($scheduledTasks | Where-Object { $_.taskName -eq $taskName }).taskStatus = $result } else { # Update tasks where taskDateTime has passed and taskStatus is "Scheduled" foreach ($taskItem in $scheduledTasks | Where-Object { $_.taskDateTime -lt (Get-Date -Format 'o') -and $_.taskStatus -eq 'Scheduled' }) { $task = Get-ScheduledTaskInfo -TaskName $taskItem.taskName $result = $task.LastTaskResult $taskItem.taskStatus = $result } } $scheduledTasks | ConvertTo-Json | Set-Content -Path $path Write-Host "Task status updated successfully." } else { Write-Host "No scheduled tasks found." } } |