Installation
Voraussetzungen
- Zugriff auf den SQL Server und die Datenbank
DocXtractor_Control_DB - PowerShell auf dem Zielsystem
sfcontrol.exeauf dem Zielsystem (Pfad im Skript setzen)- Schreibrechte auf das Log-Verzeichnis
- Berechtigung zum Ausfuehren geplanter Tasks (Windows Aufgabenplanung)
1. Datenbankobjekt anlegen
Fuehre das SQL-Skript sql/create-table.sql aus.
Dadurch werden angelegt:
- Tabelle
DocXtractor.SF_STACK_REPROCESS_LOG - Index
IX_SF_STACK_REPROCESS_LOG_STACKID_TIME
2. Skript bereitstellen
Verwende je nach Betriebsmodell eines der beiden Skripte:
powershell/stackreprocessor.ps1fuer Windows-Authentifizierungpowershell/stackreprocessor-sql-login.ps1fuer festen SQL-Benutzer mit verschluesselter Passwortdatei
3. Skript konfigurieren
Passe im Skript mindestens diese Variablen an:
$server(SQL-Servername, z. B.VERSQL016)$database(z. B.DocXtractor_Control_DB)$subsystem(zustaendiges Subsystem, z. B.Testsystem)$exe(vollstaendiger Pfad zusfcontrol.exe)$logRoot(Log-Verzeichnis, z. B.F:\ELOprofessional\logs\DocX)
Hinweise:
- Das Skript schreibt taeglich eine Logdatei (
sfcontrol-YYYYMMDD.log). - Logdateien aelter als 30 Tage werden automatisch geloescht.
- Stacks mit bereits >= 5 Eintraegen in
SF_STACK_REPROCESS_LOGwerden nicht erneut verarbeitet.
Zusaetzlich fuer stackreprocessor-sql-login.ps1:
$dbUserauf den festen SQL-Benutzer setzen$passwordFileauf den Speicherort der verschluesselten Passwortdatei setzen- Die Passwortdatei muss unter dem Windows-Konto erzeugt werden, das das Skript spaeter ausfuehrt
Beispiel zur einmaligen Erstellung der Passwortdatei:
$path = 'D:\DocXtractorII_50\System\conf\stackreprocessor-sql-login-db-password.txt'
Read-Host 'DB-Passwort' -AsSecureString | ConvertFrom-SecureString | Set-Content $path
Nuetzliche PowerShell-Befehle fuer die Passwortdatei:
Passwortdatei neu anlegen oder ueberschreiben:
$path = 'D:\DocXtractorII_50\System\conf\stackreprocessor-sql-login-db-password.txt'
$directory = Split-Path -Path $path -Parent
New-Item -ItemType Directory -Path $directory -Force | Out-Null
Read-Host 'DB-Passwort' -AsSecureString | ConvertFrom-SecureString | Set-Content -Path $path
Passwortdatei aktualisieren:
$path = 'D:\DocXtractorII_50\System\conf\stackreprocessor-sql-login-db-password.txt'
Read-Host 'Neues DB-Passwort' -AsSecureString | ConvertFrom-SecureString | Set-Content -Path $path
Entschluesselung unter demselben Windows-Konto testen:
$path = 'D:\DocXtractorII_50\System\conf\stackreprocessor-sql-login-db-password.txt'
$secure = Get-Content -Path $path | ConvertTo-SecureString
$credential = New-Object System.Management.Automation.PSCredential ('DocXtractor_Service', $secure)
$credential.GetNetworkCredential().Password
Hinweis:
- Die Ausgabe des letzten Befehls ist das Klartext-Passwort und sollte nur fuer einen kurzen Funktionstest verwendet werden.
- Die Datei kann nur von demselben Benutzerkontext auf demselben Server entschluesselt werden, wenn sie mit
ConvertFrom-SecureStringohne zusaetzlichen Key erzeugt wurde.
4. Testlauf manuell ausfuehren
Starte das Skript einmal manuell auf dem Zielsystem:
powershell.exe -ExecutionPolicy Bypass -File .\stackreprocessor.ps1
Fuer die SQL-Login-Variante entsprechend:
powershell.exe -ExecutionPolicy Bypass -File .\stackreprocessor-sql-login.ps1
Pruefen:
- Logdatei im konfigurierten
$logRoot - Eintraege in
DocXtractor.SF_STACK_REPROCESS_LOG - Erfolgreicher Aufruf von
sfcontrol.exe
5. Windows Aufgabenplanung einrichten
Empfohlene Einstellungen:
- Trigger: alle 10 Minuten (oder passend zu eurem Betrieb)
- Aktion:
powershell.exe - Argumente:
-ExecutionPolicy Bypass -File "D:\Pfad\zu\stackreprocessor.ps1"
Oder fuer die SQL-Login-Variante:
-ExecutionPolicy Bypass -File "D:\Pfad\zu\stackreprocessor-sql-login.ps1"
- Option aktivieren: Keine neue Instanz starten, wenn die Aufgabe bereits ausgefuehrt wird
- Aufgabe mit einem technischen Konto ausfuehren, das Zugriff auf SQL Server,
sfcontrol.exeund das Log-Verzeichnis hat
Zusatz fuer stackreprocessor-sql-login.ps1:
- Das technische Konto der Aufgabe muss identisch mit dem Konto sein, das die verschluesselte Passwortdatei erstellt hat
- Ein reiner Dateikopiervorgang der Passwortdatei auf ein anderes Konto oder einen anderen Server reicht nicht aus
6. Betriebskontrolle
Nach der Einrichtung regelmaessig pruefen:
- Dateilog im Log-Verzeichnis
- DB-Log in
DocXtractor.SF_STACK_REPROCESS_LOG - Geblockte Stacks (>= 5 Versuche) siehe
docs/operations.md