From 03d304540a8fb90d45ed37d15f88138855e3c0ef Mon Sep 17 00:00:00 2001 From: Marius Date: Thu, 27 Aug 2026 16:29:54 +0300 Subject: [PATCH] fix(ups): -Mode Status nu mai raporteaza NEINREGISTRAT cand interogarea esueaza Vazut pe 27.08.2026 la 16:27: Status a afisat "Task programat: NEINREGISTRAT" desi taskul rula (State=Running, proces ups-monitor.ps1 -Mode Run viu, PID 3308). Trei rulari imediat urmatoare au raportat corect Running - deci o eroare tranzitorie a Task Scheduler-ului, prezentata drept certitudine. Cauza: catch-ul trata la fel "nu exista" si "n-am putut intreba", si alegea mesajul cel mai alarmant. Intr-o pana reala ar trimite pe cineva sa reinstaleze un monitor care de fapt merge. Acum: absenta taskului se stabileste prin $null -eq $task, nu prin exceptie; o interogare esuata spune NEDETERMINAT si arata eroarea; iar daca doar Get-ScheduledTaskInfo cade, se afiseaza starea fara ultima rulare. Verificat cu tokenizer-ul (0 erori) si pe server dupa deploy. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01RRyaDj39hPQ89SZS6URRpS --- scripts/ups-monitor/ups-monitor.ps1 | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/scripts/ups-monitor/ups-monitor.ps1 b/scripts/ups-monitor/ups-monitor.ps1 index 1581633..1a6ce41 100644 --- a/scripts/ups-monitor/ups-monitor.ps1 +++ b/scripts/ups-monitor/ups-monitor.ps1 @@ -614,12 +614,25 @@ switch ($Mode) { if (Test-Path -LiteralPath (Join-Path (Split-Path -Parent $ConfigPath) 'DEZACTIVAT')) { Write-Host 'AUTOMATISM : DEZARMAT (exista fisierul DEZACTIVAT)' } + # "nu exista" si "n-am putut intreba" sunt lucruri diferite. Task Scheduler + # refuza ocazional interogarea (vazut pe 27.08.2026: un NEINREGISTRAT intre + # doua rulari care raportau corect Running), iar mesajul asta in mijlocul unei + # pene ar trimite pe cineva sa reinstaleze un monitor care de fapt merge. + $numeTask = 'ROMFAST UPS Monitor' try { - $task = Get-ScheduledTask -TaskName 'ROMFAST UPS Monitor' -ErrorAction Stop - $info = Get-ScheduledTaskInfo -TaskName 'ROMFAST UPS Monitor' - Write-Host "Task programat : $($task.State), ultima rulare $($info.LastRunTime), rezultat $($info.LastTaskResult)" + $task = Get-ScheduledTask -TaskName $numeTask -ErrorAction SilentlyContinue + if ($null -eq $task) { + Write-Host 'Task programat : NEINREGISTRAT' + } else { + $info = Get-ScheduledTaskInfo -TaskName $numeTask -ErrorAction SilentlyContinue + if ($null -eq $info) { + Write-Host "Task programat : $($task.State)" + } else { + Write-Host "Task programat : $($task.State), ultima rulare $($info.LastRunTime), rezultat $($info.LastTaskResult)" + } + } } catch { - Write-Host 'Task programat : NEINREGISTRAT' + Write-Host "Task programat : NEDETERMINAT - interogarea a esuat ($($_.Exception.Message))" } $log = Join-Path $cfg.logPath ('ups-monitor-{0}.log' -f (Get-Date -Format 'yyyy-MM')) if (Test-Path -LiteralPath $log) {