Aufgabenplanung Kuriosität - Workaound vorhanden - Lösung erwünscht

LORDSVN

Lt. Junior Grade
🎅 Nikolaus-Rätsel-Elite
Registriert
Dez. 2004
Beiträge
482
Hallo,

ich stehe gerade vor einem kuriosem Problem.

Wir nutzen die Software Concept Office.
Dort haben wir mehrere Automationen, die z.B. über eine SQL-Abfrage Daten in eine Excel Datei schreiben.
Die Automationen werden sind die Windows Aufgabenplanung durch einen Service Account erstellt.
Die Aufgabe an sich führt nur eine cmd Datei aus. In Dieser befindet sich der Pfad zur exe und die Recherche, die ausgeführt werden soll.
Der Nutzer, der die Aufgabe ausführt, ist in der Software hinterlegt und hat alle Berechitgungen.

Beispiel der CMD Datei: "C:\Program Files\Software-Concept\ConceptOffice\Sc.Tools.Automation.exe" Artikelexport


Nach der Umstellung von Version 7 auf Version 8 läuft eine einzige Automation nicht mehr ordentlich durch.
Die Excel Datei wird zwar erstellt, hat aber nur noch eine Größe von 8MB (normal sind 16 MB) und lässt sich nicht öffnen.

Ich habe die CMD jetzt um ein log erweitert. Hier der Auszug

Code:
31.07.2024 10:18:32,50 - Starting the automation task...
[10:18:32 VRB] logging initialized
[10:18:33 VRB] Connected to database dbserver/dbname/dbuser.
[10:18:36 INF] <---
[10:18:36 INF] <--- Zur Verarbeitungsliste hinzugefügt: Artikelexport
[10:18:36 INF] <---
Automation ready.
[10:18:36 INF] =======================================================
[10:18:36 INF] Verarbeitung begonnen: Artikelexport
[10:18:36 INF] Operationsausführung für Mandant Nr.: 1
[10:18:36 INF] Starte Abarbeitung Recherche...
[10:18:36 INF] Recherche laufende Nummer: 0815
[10:18:36 INF] Mandant: 1
[10:18:36 INF] Sql exportieren 'select
a.Artikelnummer,
'Bezeichnung' =
case
w'...
[10:18:36 INF] Mandant: 1
[10:18:36 INF] E-Mailadresse für erstellte Datei: ''
[10:18:36 INF] E-Mail versenden nur, wenn Recherche Ergebnis liefert: ja
[10:18:36 INF] Als Textdatei ausgeben: nein
[10:18:46 INF] Schreibe Exceldatei \\server\export\Artikelexport\Artikelexport.xlsx aus Vorlage ''
[10:19:08 INF] Export gescheitert. (Fehler beim Speichern von \\server\export\Artikelexport\Artikelexport.xlsx (Schwerwiegender Fehler (Ausnahme von HRESULT: 0x8000FFFF (E_UNEXPECTED))))
[10:19:08 INF] Abarbeitung Recherche beendet.
[10:19:08 INF] Task: Artikelexport , Operation ausgeführt: Recherche
[10:19:08 INF] Verarbeitung abgeschlossen, keine weiteren Tasks in der Verarbeitungsliste.

Beim Schreiben der Excel tritt der folgende Fehler auf:
[10:19:08 INF] Export gescheitert. (Fehler beim Speichern von \\server\export\Artikelexport\Artikelexport.xlsx (Schwerwiegender Fehler (Ausnahme von HRESULT: 0x8000FFFF (E_UNEXPECTED))))

Jetzt das kuriose.

Wenn ich mich parallel mit dem Nutzer am Server anmelde, der die Aufgabe auch ausführt, dann funktioniert alles.
Melde ich ihn wieder ab, kommt der gleiche Fehler wieder
Der Nutzer hat auch alle Rechte, um auf das Laufwerk oder alles andere zugreifen zu können.
Hab auch schon mit Privilegien gespielt und sogar den Administrator genommen.

Ergebnis:
Sobald das Konto am Server abgemeldet ist, crasht die Erstellung der Excel Datei.
Der Task läuft an und ein Teil wird auch erstellt und mittendrin crasht er beim Schreiben zum UNC pfad.

Mein workaround:

1. Ich melde mich mit dem Servicekonto an
2. Start Eingabeaufforderung (cmd) --> Ausführen als "Nutzer der die Automation starten soll"
3. Eingabeaufforderung schließen


Damit läuft es erst einmal ohne das der Nutzer aktiv angemeldet sein muss.

Hat jemand hierzu eine Idee?
 
Was sagt den der Hersteller der Software dazu? Ihr hab ja vermutlich viel Geld bei denen gelassen und hab womöglich Support dort.
(Bzw bei dem Systemhaus bzw einen Dienstleister den ihr dafür beauftragt habt )
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Asghan und BFF
Mal die Eventlogs auf dem Server geprüft? Kannst die Suche dort ja durch gezieltes starten des Tasks gut eingrenzen.
 
Fujiyama schrieb:
Was sagt den der Hersteller der Software dazu? Ihr hab ja vermutlich viel Geld bei denen gelassen und hab womöglich Support dort.
(Bzw bei dem Systemhaus bzw einen Dienstleister den ihr dafür beauftragt habt )

Da alle anderen Tasks/Automationen funktionieren, sagen die, dass es nicht an der Software liegt.

In das Zielverzeichnis werden noch 2 weitere Excel Dateien abgelegt. Alle nach dem gleichen Schema.
Nur diese eine Automation macht Probleme.
Ich habe den Task auch schon diverse male neu angelegt. Immer mit anderen Einstellungen. Auch mal direkt über "C:\Program Files\Software-Concept\ConceptOffice\Sc.Tools.Automation.exe" Artikelexport


Ich könnte jetzt noch die Automation/Recherche in der Software mal neu anlegen und schauen was passiert.
Wenn es dann geht, dann lag es an der Software.

Ich kanns mir aber nicht vorstellen. Dafür ist das Fehlerbild zu komisch.


Korben2206 schrieb:
Mal die Eventlogs auf dem Server geprüft? Kannst die Suche dort ja durch gezieltes starten des Tasks gut eingrenzen.
Im Verlauf des Tasks steht nur, dass der Task ordentlich ausgeführt wurde.

Im Eventlog unter Applications and Services Logs > Microsoft > Windows > TaskScheduler das gleiche:

Code:
Die Aufgabenplanung hat die Instanz "{557748b3-85e7-48b3-9cab-f06e3185a16d}" der Aufgabe "\Artikelexport" aufgrund einer Zeitauslöserbedingung gestartet.

Die Aufgabenplanung hat die Aufgabe "\Artikelexport", Instanz "C:\Windows\SYSTEM32\cmd.exe" mit der Prozess-ID 2128 gestartet.

Die Aufgabenplanung hat die Instanz "{557748b3-85e7-48b3-9cab-f06e3185a16d}" der Aufgabe "\Artikelexport" für den Benutzer "Domain\COUser" gestartet.

Die Aufgabenplanung hat die Aktion "C:\Windows\SYSTEM32\cmd.exe" in der Instanz "{557748b3-85e7-48b3-9cab-f06e3185a16d}" der Aufgabe "\Artikelexport" gestartet.

Die Aufgabenplanung hat die Aufgabe "\Artikelexport", Instanz "{557748b3-85e7-48b3-9cab-f06e3185a16d}", Aktion "C:\Windows\SYSTEM32\cmd.exe" mit Rückgabecode 0 erfolgreich abgeschlossen.

Die Aufgabenplanung hat die Instanz "{557748b3-85e7-48b3-9cab-f06e3185a16d}" der Aufgabe "\Artikelexport" für den Benutzer "Domain\COUser" erfolgreich fertig gestellt.

Oder gibt es noch eine andere Stelle?
 
Zum Testen mal die Datei lokal abspeichern lassen und danach per copy/move zum Fileshare übertragen und schauen, ob es dann normal geht.
 
  • Gefällt mir
Reaktionen: BFF
LORDSVN schrieb:
Damit läuft es erst einmal ohne das der Nutzer aktiv angemeldet sein muss.
Das ist was mich stört.
Das sieht so aus als ob der Task/Software irgendwas aufruft was eine aktive Desktop Sitzung verlangt.

Wenn das erst ab neuer Software ist, schieb ich das auf die Software.
 
Hab es noch einmal durchgeprüft.

Habe die Recherche neu angelegt --> gleiches Problem
Habe den Speicherort geändert --> gleiches Problem
Hab den Serviceuser in die Gruppe der lokalen Administratoren genommen und die checkbox "mit höchsten Berechtigungen ausführen" gesetzt --> gleiches Problem

Einzige Lösung bisher weiterhin:
CMD ausführen als anderes Benutzer > Mit Nutzer anmelden, der den Task ausführt --> CMD schließen

Hatte im stackoverflow noch einen Ansatz gelesen:
Probably not the cause of the OP's problem; for me the problem was caused by the fact that my program called a SQL function, and the service account the windows task was set up with did not have the required SQL permissions. That also gives a 0x1


Access your SQL server with Management Studio. Right click on security and add new login. Use the domain name too, for the windows account running you scheduled task, like SomeDomain\SomeUser. Before hitton OK to create the login, select "User Mapping" on the left and give this new login the required databases

Der User ist im Management Studio aber vorhanden und der db zugeordnet. Vielleicht noch irgendwelche Berechtigungen auf SQL Ebene? Aber laut log ist die SQL Geschichte ja eigentlich durch und es geht nur noch ums schreiben auf den UNC Pfad.
 
LORDSVN schrieb:
Im Verlauf des Tasks steht nur, dass der Task ordentlich ausgeführt wurde.

Im Eventlog unter Applications and Services Logs > Microsoft > Windows > TaskScheduler das gleiche:
hm.. ok. Dann hab ich vllt. den Aufbau des Szenarios wohl nicht richtig verstanden. Ich dachte der Scheduled Task läuft auf einer Windows 8 Maschine und versucht eine Datei auf einem Servershare zu schreiben...
Ergänzung ()

PS: wenn es auch mit einem lokalen Pfad nicht geht ist meine Idee eh hinfällig :)
 
BFF schrieb:
Lass mal auf einen lokalen Datentraeger schreiben. @LORDSVN
Hatte @kartoffelpü auch schon getippt.
Hab ich jetzt gerade mal gemacht.
Genau das gleiche verhalten. Datei wird zwar angelegt, kann aber nicht geöffnet werden

Code:
[08:01:44 INF] E-Mail versenden nur, wenn Recherche Ergebnis liefert: ja
[08:01:44 INF] Als Textdatei ausgeben: nein
[08:01:54 INF] Schreibe Exceldatei C:\temp\Artikelexport_Test.xlsx aus Vorlage ''
[08:02:16 INF] Export gescheitert. (Fehler beim Speichern von C:\temp\Artikelexport_Test.xlsx (Schwerwiegender Fehler (Ausnahme von HRESULT: 0x8000FFFF (E_UNEXPECTED))))
[08:02:16 INF] Abarbeitung Recherche beendet.
[08:02:16 INF] Task: Artikelexport_Test , Operation ausgeführt: Recherche
[08:02:16 INF] Verarbeitung abgeschlossen, keine weiteren Tasks in der Verarbeitungsliste.
 
Kannst du ggf. den Loglevel der Anwendung erhöhen? Sieht für mich so aus als würde er nur die INF Meldungen ausgeben... vllt. kann man in einer Configdatei oder Registry den Level auf Debug setzen. (ggf. mal den Hersteller kontaktieren)
 
Ich werde da mal nachhaken. Es gibt zwar einen Debugmode, der nciht aktiv ist aber ich will den jetzt nicht aktivieren. Muss mal fragen, was das für auswirkungen hat.
In der Beschreibung steht nämlich, dass Änderungen die Stabilität beeinträchtigen können.

Ich habe noch einen Logeintrag gefunden.

Starte ich den Task ohne angemeldeten Nutzer steht im log des Nutzers folgendes:
Code:
[01.08.2024 12:04:43] COUser Connected to database dbserver/dbname/dbuser.
[01.08.2024 12:04:45] COUser tableName='' for tag 'LZ'

Starte ich den Task und der Nutzer ist angemeldet fehlt der letzte Eintrag "COUser tableName='' for tag 'LZ'"

jetzt muss ich mal schauen was dieses tag "LZ" ist
 
Zurück
Oben