Files
ROMFASTSQL/scripts/ups-monitor
Marius 03d304540a 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
2026-08-27 16:29:54 +03:00
..

ups-monitor — monitorizare UPS pentru serverul Oracle de producție (10.0.20.36)

Înlocuiește ViewPower, care nu putea dialoga cu acest UPS. Citește starea alimentării prin GetSystemPowerStatus (canalul HID nativ Windows), alertează pe email și oprește curat Oracle înainte de epuizarea bateriei.

Documentația completă — diagnostic, praguri, operare, capcane: docs/ups-server36-monitorizare.md

Fișier Rol
ups-monitor.ps1 monitorul: buclă + modurile Status, TestMail, TestShutdown, Once
install-ups-monitor.ps1 instalare pe server: copiere, config.json, ACL, task programat
config.example.json șablon de configurare

config.json real trăiește doar pe server (C:\ROMFAST\ups-monitor\), cu ACL restrâns — conține parola SMTP și nu se comite.

Livrare

scp -P 22122 ups-monitor.ps1 install-ups-monitor.ps1 Administrator@10.0.20.36:'C:/ROMFAST/_deploy/'
ssh -p 22122 Administrator@10.0.20.36 "powershell -ExecutionPolicy Bypass -File C:\ROMFAST\_deploy\install-ups-monitor.ps1 -SmtpPassword ..."

Înainte de livrare, verificarea de sintaxă pentru PowerShell 5.1 (ținta de pe server):

$e=$null; [System.Management.Automation.PSParser]::Tokenize((Get-Content ups-monitor.ps1 -Raw), [ref]$e); $e