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
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