-
Notifications
You must be signed in to change notification settings - Fork 0
Webserver
Der os4k2excel Webserver (os4k2excel-server.ps1) stellt eine browserbasierte Oberflaeche bereit, ueber die der OpenScape 4000 Export gestartet, ueberwacht und heruntergeladen werden kann. Ein integrierter Zeitplaner ermoeglicht automatische Ausfuehrung.
Browser (Port 8080)
|
+-- GET / --> Login-Seite (Passwort-Eingabe)
+-- POST /login --> Passwort pruefen, Session-Cookie setzen
+-- GET /dashboard --> Hauptseite (Start-Button, Status, Downloads, Zeitplaner)
+-- POST /run --> Script starten (Background-Job)
+-- GET /status --> Job-Status als JSON (Polling alle 2s)
+-- GET /download --> Excel-Datei herunterladen
+-- POST /email --> Excel per SMTP versenden
+-- GET /schedule --> Zeitplaner-Konfiguration lesen (JSON)
+-- POST /schedule --> Zeitplaner-Konfiguration speichern
+-- POST /shutdown --> Server beenden
+-- GET /logout --> Session beenden
Technologie: Reines PowerShell mit System.Net.HttpListener. Kein IIS, kein Node.js, keine externen Abhaengigkeiten. HTML/CSS/JS ist direkt im Script eingebettet.
- Gleiche Voraussetzungen wie fuer
getall_cfw.ps1(PowerShell 5.1+, ImportExcel-Modul, api2hipath.exe) - Netzwerkzugang zum OpenScape 4000 Server
- Port 8080 (oder konfiguriert) muss frei sein
Fuer nicht-Administrator-Benutzer muss einmalig als Admin der Port freigegeben werden:
# Port freigeben (einmalig als Administrator)
netsh http add urlacl url=http://+:8080/ user=DOMAIN\USERNAME
# Freigabe wieder entfernen
netsh http delete urlacl url=http://+:8080/Falls der Server von anderen Rechnern erreichbar sein soll:
# Windows-Firewall-Regel hinzufuegen (als Administrator)
New-NetFirewallRule -DisplayName "os4k2excel Webserver" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow# Minimal
.\os4k2excel-server.ps1 -ApiHost "10.10.206.18" -ApiUser "xieapi" -ApiPassword "geheim" -WebPassword "team2024"
# Mit Email-Versand und Standard-Empfaenger
.\os4k2excel-server.ps1 -ApiHost "10.10.206.18" -ApiUser "xieapi" -ApiPassword "geheim" -WebPassword "team2024" -SmtpServer "mail.firma.de" -SmtpFrom "os4k@firma.de" -SmtpTo "admin@firma.de"
# Anderer Port
.\os4k2excel-server.ps1 -ApiHost "10.10.206.18" -ApiUser "xieapi" -ApiPassword "geheim" -WebPassword "team2024" -Port 9090| Parameter | Pflicht | Standard | Beschreibung |
|---|---|---|---|
-ApiHost |
Ja | - | IP-Adresse des OpenScape 4000 |
-ApiUser |
Ja | - | API-Benutzername |
-ApiPassword |
Ja | - | API-Passwort |
-WebPassword |
Ja | - | Passwort fuer die Web-Anmeldung |
-ApiPath |
Nein | C:\Program Files (x86)\...\api2hipath.exe |
Pfad zur API-Executable |
-OutputPath |
Nein | Skriptverzeichnis | Zielverzeichnis fuer Ausgabedateien |
-Port |
Nein | 8080 |
HTTP-Port |
-SmtpServer |
Nein | - | SMTP-Server fuer Email-Versand |
-SmtpPort |
Nein | 25 |
SMTP-Port |
-SmtpFrom |
Nein | - | Absender-Adresse fuer Emails |
-SmtpTo |
Nein | - | Standard-Empfaenger (wird im Dashboard vorausgefuellt) |
- Einfache Passwort-Authentifizierung ueber Webformular
- Session-Cookie (GUID) wird bei erfolgreichem Login gesetzt
- Session-Timeout nach 60 Minuten Inaktivitaet
- Automatische Verlaengerung bei Aktivitaet
- Zeigt API-Verbindungsinfo (Host, User - kein Passwort)
- "Jetzt starten" Button zum Ausfuehren des Exports
- Fortschrittsanzeige mit Ladebalken und aktueller Meldung
- Download-Button nach Abschluss
- Email-Versand Formular (wenn SMTP konfiguriert)
- Zeitplaner-Konfiguration
- History der letzten Ausfuehrungen (mit Quelle: Manuell/Zeitplaner)
- Startet
getall_cfw.ps1als PowerShell Background-Job (Start-Job) - Nur ein Job gleichzeitig moeglich (Queue-Schutz)
- Fortschritts-Erkennung durch Parsen der Job-Ausgabe
- Phasen: API-Abfragen (0-40%) -> Port-Verarbeitung (40-90%) -> Formatierung (90-100%)
- Neue Tabellen (seit M26): PICKUPGRP und PICKUP_SUB werden automatisch extrahiert
- Stellt die neueste
OS4K-PORT-*.xlsxDatei zum Download bereit - Korrekter MIME-Type (
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
- Versendet die Excel-Datei als Attachment per SMTP
- Empfaenger-Adresse wird im Dashboard eingegeben
- Standard-Empfaenger kann per
-SmtpToParameter vorgegeben werden (wird im Eingabefeld vorausgefuellt) - Verwendet
Send-MailMessage(PowerShell built-in) - Nur verfuegbar wenn
-SmtpServerund-SmtpFromkonfiguriert sind
Der Zeitplaner ermoeglicht automatische Ausfuehrung des Exports zu festgelegten Zeiten.
Konfiguration im Dashboard:
- Ein/Aus - Toggle zum Aktivieren/Deaktivieren
- Uhrzeit - Ausfuehrungszeitpunkt (z.B. 02:00)
- Wochentage - An welchen Tagen ausgefuehrt werden soll (Mo-So)
- Email an - Optionale automatische Zustellung nach Abschluss (nur bei konfiguriertem SMTP)
Funktionsweise:
- Der Server prueft alle 2 Sekunden ob ein geplanter Lauf faellig ist
- Der Export wird nur einmal pro Tag zur konfigurierten Minute gestartet
- Laeuft bereits ein Export, wird kein zweiter gestartet
- Nach Abschluss wird optional eine Email mit der Excel-Datei versendet
- In der History wird die Quelle "Zeitplaner" statt "Manuell" angezeigt
Hinweis: Die Zeitplaner-Konfiguration wird im Arbeitsspeicher gehalten und geht beim Neustart des Servers verloren. Sie muss nach jedem Serverstart im Dashboard neu eingerichtet werden.
Es gibt drei Moeglichkeiten den Server sauber zu beenden:
Direktes Beenden im Terminal-Fenster in dem der Server laeuft.
Im Dashboard oben rechts befindet sich der Button "Server beenden". Es erscheint eine Sicherheitsabfrage vor dem Herunterfahren.
Fuer Fernsteuerung oder Automatisierung kann aus einem beliebigen Terminal eine Stop-Datei erstellt werden:
REM CMD
echo.> "C:\pfad\zum\skript\os4k2excel-server.stop"# PowerShell
New-Item "C:\pfad\zum\skript\os4k2excel-server.stop"Der Server erkennt die Datei innerhalb von 2 Sekunden, loescht sie und faehrt herunter. Laufende Background-Jobs werden gestoppt.
- Passwort wird nur im Speicher gehalten, nie in Dateien geschrieben
- API-Passwort wird nicht im Frontend angezeigt
- Session-Cookie ist HttpOnly (kein JavaScript-Zugriff)
- Session-Timeout nach 60 Minuten Inaktivitaet
- Nur ein Script-Lauf gleichzeitig moeglich
- Server laeuft standardmaessig auf Port 8080 (kein Admin-Recht noetig)
- Shutdown-Endpoint erfordert gueltige Session
| Problem | Loesung |
|---|---|
| Port bereits belegt | Anderen Port mit -Port Parameter waehlen |
| Zugriff verweigert auf Port |
netsh http add urlacl ausfuehren (siehe Port-Freigabe) |
| Kein Zugriff von anderem Rechner | Firewall-Regel hinzufuegen (siehe Firewall) |
| Email-Versand schlaegt fehl | SMTP-Server und Port pruefen, ggf. Authentifizierung am SMTP |
| Job bleibt haengen | Server mit Ctrl+C beenden und neu starten |
| Zeitplaner loest nicht aus | Pruefen ob aktiviert, Uhrzeit und Wochentag korrekt, Server muss laufen |
| Zeitplaner-Einstellungen weg | Werden nicht persistent gespeichert, nach Neustart im Dashboard erneut konfigurieren |
Version: M26.20260310.1239 | Release: v2.26.0 | Update: 2026-03-10