Als Windows-Dienst einrichten

Schritt-für-Schritt-Anleitung zum Betrieb von Automatic X-Invoice Processor als Windows-Dienst im Hintergrund

Diese Anleitung zeigt, wie Sie Automatic X-Invoice Processor als Windows-Dienst einrichten, der dauerhaft im Hintergrund läuft - ohne dass ein Benutzer angemeldet sein oder das Programmfenster geöffnet sein muss. Das ist die richtige Betriebsart für Server und für Rechner, die rund um die Uhr E-Rechnungen verarbeiten sollen.

Der Dienst nutzt das Programm AXPProcessor.exe, das bei der Installation neben dem normalen Programm liegt. Das Hauptfenster starten Sie danach nur noch gelegentlich, um Profile zu pflegen oder die Protokolle zu prüfen.

Auf einen Blick

  • Schwierigkeit: Fortgeschritten (Administrator-Rechte erforderlich)
  • Zeitbedarf: ca. 15 Minuten
  • Voraussetzungen: Installiertes Programm, ein Windows-Benutzerkonto für den Dienst, eine Eingabeaufforderung als Administrator
  • Ergebnis: Automatic X-Invoice Processor verarbeitet E-Rechnungen dauerhaft im Hintergrund, auch ohne angemeldeten Benutzer

Video-Tutorial: Als Windows-Dienst einrichten (mit Sprachausgabe und optionalen Untertiteln)

Hinweis: Genügt es, wenn die Verarbeitung läuft, solange ein Benutzer angemeldet ist? Dann reicht der einfachere unauffällige Dauerbetrieb im Infobereich - siehe Anleitung: Autostart und Hintergrundbetrieb. Weitere Details zum Dienst-Modus (Kommandozeilen-Parameter, Diagnose) finden Sie in der Programmhilfe, Kapitel 60.1.4.


Schritt 1: Ein eigenes Benutzerkonto für den Dienst wählen

Legen Sie für den Dienst ein eigenes Windows-Benutzerkonto an (oder verwenden Sie ein vorhandenes Benutzer- bzw. Domänenkonto). Unter diesem Konto wird der Dienst später laufen.

Verwenden Sie nicht das Konto “Lokales System”. Der Grund: Einstellungen und Berechtigungen sind in Windows immer an einen bestimmten Benutzer gebunden. Läuft der Dienst unter “Lokales System”, kommt er an genau diese Dinge nicht heran:

  • die Profile, Programmoptionen und die Lizenz (sie liegen im Anwendungsdaten-Ordner des Benutzers)
  • gespeicherte Kennwörter der E-Mail-Versandkonten (insbesondere bei Speicherung im Windows-Tresor) und die Anmeldung bei Microsoft 365 (Exchange Online)
  • Netzwerk-Drucker (Druckerverbindungen sind je Benutzer eingerichtet)

Außerdem sehen sich Hauptfenster und Dienst nur dann gegenseitig (Statusanzeige, Protokolle), wenn beide unter demselben Benutzer laufen.

Empfehlung: Richten Sie ein dediziertes Konto wie AXP-Service ein und vergeben Sie ein Passwort, das nicht abläuft.


Schritt 2: Programm einmalig unter diesem Konto einrichten

Melden Sie sich einmalig mit dem Dienst-Konto an Windows an und starten Sie das normale Programm (AutomaticXInvoiceProcessor.exe). Richten Sie hier alles fertig ein:

  1. Lizenz eintragen.
  2. Profile anlegen oder importieren und mit einem Testlauf prüfen (siehe Anleitung: Erste Schritte).
  3. Falls Profile E-Mails versenden: das Versandkonto mit Testnachricht senden… prüfen; falls sie drucken: den Drucker einmal unter diesem Konto verbinden.

Dieser Schritt ist wichtig: Profile, Optionen und Lizenz werden für genau dieses Benutzerkonto hinterlegt. Der Dienst kann später nur das verwenden, was hier unter seinem Konto eingerichtet wurde.


Schritt 3: Dienst einrichten

Öffnen Sie eine Eingabeaufforderung als Administrator und legen Sie den Dienst mit sc.exe an. Passen Sie den Pfad zur AXPProcessor.exe an Ihren Installationsort an (Standard ist C:\Program Files\Automatic X-Invoice Processor 2) und tragen Sie bei obj= Ihr Dienst-Konto aus Schritt 1 ein:

sc.exe create "AXP2Service" binPath= "\"C:\Program Files\Automatic X-Invoice Processor 2\AXPProcessor.exe\" --service"
sc.exe config "AXP2Service" obj= ".\AXP-Service" password= "IhrPasswort"
  • binPath= verweist auf die AXPProcessor.exe mit dem Parameter --service.
  • obj= ist das Benutzerkonto, unter dem der Dienst läuft - genau das Konto, unter dem Sie in Schritt 2 alles eingerichtet haben. Bei einem lokalen Konto schreiben Sie .\Kontoname, bei einem Domänenkonto Domäne\Kontoname.

Wichtig: Nach binPath=, obj= und password= steht jeweils ein Leerzeichen - das verlangt sc.exe so.

Den automatischen Start, die Absturz-Wiederherstellung und den ersten Start des Dienstes müssen Sie hier nicht selbst einrichten - das übernimmt im nächsten Schritt das Programm für Sie.


Schritt 4: Option “Externer Prozessor” aktivieren

Damit sich das Hauptfenster und der Dienst nicht gegenseitig stören, aktivieren Sie - weiterhin unter dem Dienst-Konto - die passende Option:

Öffnen Sie Optionen → Verarbeitung und setzen Sie ganz unten unter Externer Prozessor das Häkchen bei “Hintergrundprozessor wird extern verwaltet (z. B. als Windows-Dienst)”. Schließen Sie den Dialog anschließend mit OK.

Option “Hintergrundprozessor wird extern verwaltet” in den Programmoptionen unter Verarbeitung

Was diese Option bewirkt: Das Hauptfenster geht davon aus, dass der Dienst die Verarbeitung übernimmt. Es startet und beendet also keinen eigenen Verarbeitungsprozess mehr, sondern dient nur noch zur Konfiguration und zur Anzeige der Protokolle. Ohne diese Option würde das Fenster bei jedem Start einen eigenen Prozessor starten und dem Dienst ins Gehege kommen.

Der Dienst wird dabei gestartet: Da Sie den Dienst in Schritt 3 bereits angelegt haben, erkennt das Programm beim Bestätigen, dass er noch nicht läuft, und bietet an, ihn direkt zu starten und auf automatischen Start zu setzen - dabei wird auch die automatische Wiederherstellung nach einem Dienst-Absturz eingerichtet (Windows startet den Dienst dann bei Bedarf selbst neu). Bestätigen Sie die Rückfrage mit Dienst starten und die anschließende Administrator-Abfrage - dann läuft der Dienst sofort und startet künftig automatisch mit Windows. Ist noch kein Dienst eingerichtet, weist ein Hinweis darauf hin.


Schritt 5: Dienst prüfen

Prüfen Sie, ob alles läuft:

  1. In der Windows-Diensteverwaltung (services.msc) sollte “AXP2Service” den Status “Wird ausgeführt” und den Starttyp “Automatisch” haben.

  2. Im Task-Manager sehen Sie zwei AXPProcessor.exe-Prozesse - das ist beabsichtigt: Der eine ist der Überwacher (der eigentliche Dienst), der andere der Arbeitsprozess, der die Verarbeitung ausführt. Bleibt eine Datei einmal dauerhaft hängen, ersetzt der Überwacher nur den Arbeitsprozess, und die Verarbeitung läuft ohne Eingriff weiter.

  3. Bei Problemen hilft die Datei ServiceDiagnostics.log. Sie liegt im Anwendungsdaten-Ordner des Dienst-Kontos:

    %AppData%\Automatic X-Invoice Processor 2\ServiceDiagnostics.log

    Sie enthält die Startmeldungen; im Dienst-Betrieb steht dort IsWindowsService=True. Steht dort nur IsWindowsService=False, läuft der Dienst nicht wie erwartet.

Läuft der Dienst wider Erwarten nicht (etwa weil Sie die Start-Abfrage in Schritt 4 abgelehnt haben), starten Sie ihn von Hand und setzen den automatischen Start:

sc.exe config "AXP2Service" start= auto
sc.exe start "AXP2Service"

Die regulären Verarbeitungs- und Fehlerprotokolle erscheinen wie gewohnt im Hauptfenster unter Protokoll.


Schritt 6: Frühwarnung bei Stillstand einrichten (empfohlen)

Im unbeaufsichtigten Dauerbetrieb bemerkt niemand sofort, wenn die Verarbeitung einmal stehen bleibt. Richten Sie deshalb die Störungsmeldung ein: Das Programm schickt Ihnen dann automatisch eine E-Mail, sobald über einen festgelegten Zeitraum keine Verarbeitung mehr stattgefunden hat - so erfahren Sie von einem Problem, ohne selbst nachsehen zu müssen. Im Dienst-Betrieb übernimmt der Überwacher-Prozess diese Kontrolle.

Öffnen Sie Optionen → Verarbeitung → Störungsmeldung, aktivieren Sie “Nachricht senden, wenn keine Verarbeitung seit x Minuten” und tragen Sie eine Zeitspanne sowie einen oder mehrere Empfänger ein. Der Versand nutzt das Konto aus Optionen → E-Mail-Versand.

Unabhängig von der E-Mail landet jede erkannte Störung immer im Fehlerprotokoll und in der Windows-Ereignisanzeige.


Schritt 7: Laufender Betrieb

Ab jetzt verarbeitet der Dienst E-Rechnungen dauerhaft im Hintergrund - unabhängig davon, ob ein Benutzer angemeldet ist. Das Hauptfenster starten Sie nur noch bei Bedarf, um Profile zu ändern oder Protokolle anzusehen; die eigentliche Verarbeitung bleibt beim Dienst.

Möchten Sie den Dienst später anhalten oder entfernen:

sc.exe stop "AXP2Service"
sc.exe delete "AXP2Service"

Häufige Probleme

Problem Lösung
Hauptfenster zeigt keinen Verarbeitungsstatus, obwohl der Dienst läuft Dienst und Hauptfenster müssen unter demselben Benutzerkonto laufen. Prüfen Sie in services.msc unter “Anmelden als”, ob dort das Konto aus Schritt 1 steht - nicht “Lokales System”.
Häkchen “Externer Prozessor” ist gesetzt, aber es wird gar nichts verarbeitet Beim Setzen des Häkchens bietet das Programm an, einen vorhandenen, aber gestoppten Dienst direkt zu starten und auf automatischen Start zu setzen - haben Sie das abgelehnt, holen Sie es nach. Prüfen Sie, ob der Dienst wirklich läuft: in services.msc Status “Wird ausgeführt” und Starttyp “Automatisch”. Fehlt der Autostart (Starttyp “Manuell”), mit sc.exe config "AXP2Service" start= auto nachholen und mit sc.exe start "AXP2Service" starten. Hinweis: sc.exe create allein legt den Dienst nur auf “Manuell” an.
Dienst startet und beendet sich sofort wieder ServiceDiagnostics.log im AppData-Ordner des Dienst-Kontos öffnen (siehe Schritt 5) - dort steht der Grund.
Zwei AXPProcessor-Prozesse im Task-Manager Beabsichtigt: Überwacher + Arbeitsprozess (siehe Schritt 5).
Netzwerk-Drucker funktioniert im Dienst nicht Druckerverbindungen gelten je Benutzer. Den Drucker einmal unter dem Dienst-Konto verbinden, dann erkennt ihn auch der Dienst.
“Lokales System” wurde gewählt Diese Auswahl funktioniert nicht (siehe Schritt 1). Mit sc.exe config "AXP2Service" obj= ".\AXP-Service" password= "..." auf ein echtes Benutzerkonto umstellen.
Verarbeitung läuft doppelt Wahrscheinlich ist die Option “Hintergrundprozessor wird extern verwaltet” nicht gesetzt (Schritt 4), sodass das Hauptfenster zusätzlich verarbeitet. Häkchen setzen und Fenster neu starten.

Weiterführende Themen

Automatic X-Invoice Processor jetzt unverbindlich 30 Tage testen ...     Zum Download