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:
@@ -614,12 +614,25 @@ switch ($Mode) {
|
|||||||
if (Test-Path -LiteralPath (Join-Path (Split-Path -Parent $ConfigPath) 'DEZACTIVAT')) {
|
if (Test-Path -LiteralPath (Join-Path (Split-Path -Parent $ConfigPath) 'DEZACTIVAT')) {
|
||||||
Write-Host 'AUTOMATISM : DEZARMAT (exista fisierul 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 {
|
try {
|
||||||
$task = Get-ScheduledTask -TaskName 'ROMFAST UPS Monitor' -ErrorAction Stop
|
$task = Get-ScheduledTask -TaskName $numeTask -ErrorAction SilentlyContinue
|
||||||
$info = Get-ScheduledTaskInfo -TaskName 'ROMFAST UPS Monitor'
|
if ($null -eq $task) {
|
||||||
Write-Host "Task programat : $($task.State), ultima rulare $($info.LastRunTime), rezultat $($info.LastTaskResult)"
|
|
||||||
} catch {
|
|
||||||
Write-Host 'Task programat : NEINREGISTRAT'
|
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 : NEDETERMINAT - interogarea a esuat ($($_.Exception.Message))"
|
||||||
}
|
}
|
||||||
$log = Join-Path $cfg.logPath ('ups-monitor-{0}.log' -f (Get-Date -Format 'yyyy-MM'))
|
$log = Join-Path $cfg.logPath ('ups-monitor-{0}.log' -f (Get-Date -Format 'yyyy-MM'))
|
||||||
if (Test-Path -LiteralPath $log) {
|
if (Test-Path -LiteralPath $log) {
|
||||||
|
|||||||
Reference in New Issue
Block a user