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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RRyaDj39hPQ89SZS6URRpS
This commit is contained in:
Marius
2026-08-27 16:29:54 +03:00
parent 2733251c00
commit 03d304540a

View File

@@ -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) {