woswaasi
Goto Top

Aufgabenplanung beendet Aufgabe nicht

Hallo!

Ich möchte jede Nacht eine xlsx-Datei in eine Datenbank importieren.
Ich habe dafür eine Batch-Datei geschrieben, die zuerst Datum und Uhrzeit ausgibt, danach den Import startet und zuletzt den Namen der xlsx-Datei mit dem Datum erweitert.
Der Grund, warum ich als erstes Datum und Uhrzeit ausgeben lasse, ist, dass ich die Ausgabe in eine Log-Datei umleiten lasse.

Wenn ich die Datei manuell per Doppelklick starte, dann funktioniert alles problemlos. Der Import dauert 20-30 Minuten, anschließend wird noch die Import-Datei umbenannt.

Wenn ich die Datei per Aufgabenplanung starte, dann wird Datum und Uhrzeit in die Log-Datei geschrieben, anschließend der Import gestartet, aber mehr passiert nicht. In der Aufgabenplanung wird beim Status "Wird ausgeführt" angezeigt, bei Ergebnis der letzten Ausführung steht "Die Aufgabe wird momentan ausgeführt. (0x41301)". Aktualisieren der Anzeige ändert auch nichts.
Nach 4 Stunden (ich habe eingestellt, dass die Aufgabe nach 4 Stunden beendet werden soll) wird die Aufgabe abgebrochen, als Ergebnis steht die Meldung "0x103". Die Import-Datei wurde nicht unbenannt (daher die Batch-Datei nicht fertig ausgeführt).

Ich habe schon versucht:
  • die Batch-Datei direkt aufzurufen
  • die Batch-Datei mithilfe von "C:\Windows\system32\cmd.exe" und der Batch-Datei als Parameter aufzurufen
Das Problem ist ja nicht, dass die Datei nicht ausgeführt wird, sondern dass sie nicht beendet wird.

Zum System:
Die Batch läuft auf einem Windows Server 2016 Standard, 64-bit

Zur Datenbank:
Die Datenbank läuft auf einem MS SQL Server 2017 express. Die Datenbank gehört zu einem Telefonhybriden, das Programm für den Import der Datenbank ist vom Hersteller (das dürfte aber kein Problem sein, weil wenn ich die Batch-Datei per Doppelklick starte, wird der Import fehlerlos ausgeführt.

Ich würde auch gerne die Aufgabe mitverfolgen, wenn sie ausgeführt wird. Bei den Aufgaben-Eigenschaften habe ich den Haken bei "Ausgeblendet" weg gegeben, trotzdem wird während der Ausführung nichts angezeigt.

Hatte schon jemand ein ähnliches Problem und hat Tipps für mich, woran es liegen könnte?

Danke schon mal,
Albert

Content-ID: 370797

Url: https://administrator.de/contentid/370797

Ausgedruckt am: 21.11.2024 um 16:11 Uhr

emeriks
emeriks 11.04.2018 um 13:54:52 Uhr
Goto Top
Hi,
warum postest Du hier nicht einfach den Quelltext der Batch?

Wird er Import als solches zu Ende gebracht?
Lässt Du nach dem Kommando zum Import einen weiteren Log-Eintrag schreiben (Checkpoint)?

Wenn die Aufgabe "steht" - laufen dann noch der/die Prozess/e für den Import?

E.
Pjordorf
Pjordorf 11.04.2018 um 14:04:07 Uhr
Goto Top
Hallo,

Zitat von @Woswaasi:
Wenn ich die Datei per Aufgabenplanung starte, dann wird Datum und Uhrzeit in die Log-Datei geschrieben, anschließend der Import gestartet, aber mehr passiert nicht.
Nun, ohne deine Datei und dessen Inhalt zu kennen, tappen wir mehr als im dunkeln.
Erforden irgendwelche Eintragungen in deiner Datei z.B. doppelte %% oder andere Zeichen?
Mit welchen Rechten wird die Aufgabe gestartet?
Mach mal ein paar Bilder deiner Einstellungen, und schreib auch mal auf was denn in deiner Datei so alles drin steht.
Sollte irgendwo ein @echo OFF stehen, dann mach da mal ein @echo On raus.

"Die Aufgabe wird momentan ausgeführt. (0x41301)".
https://answers.microsoft.com/en-us/windows/forum/windows8_1-performance ...

Vielleicht hilft auch einfach mal Warten und irgendwann geht es dann face-smile
Aufgabenplanung bringt bei VBS Script immer 0x41301

Gruß,
Peter
133941
133941 11.04.2018 aktualisiert um 14:31:07 Uhr
Goto Top
Nur um das abzudichten: Hast du die Anzeige aktualisiert?? Mitverfolgen kannst du das im Verlauf deiner Aufgabe.

Grüße T.
manuel-r
manuel-r 11.04.2018 um 14:46:33 Uhr
Goto Top
Hi
Ich gehe davon aus der Task soll nachts laufen ohne, dass ein Benutzer am Server angemeldet ist.
Hast du mal getestet, was passiert, wenn du während der geplanten Ausführung am Server angemeldet bist? Läuft der Task dann durch? Vielleicht läuft das Importtool einfach nicht ohne Desktop?!

Manuel
Woswaasi
Woswaasi 11.04.2018 um 16:13:18 Uhr
Goto Top
Erstmals vielen Dank für die Antworten.

@emeriks:
Hier ist der Quelltext der Batch:
echo "%date% %time%"
"C:\Program Files (x86)\AVT\MAGIC THipPro SCREENER\MAGIC THipPro Screener.accde" /CMD /import_data
ren E:\Import\avt-export.xlsx "avt-export_%date:~-4%%date:~-7,2%%date:~-10,2%.xlsx"

Die erste Zeile schreibt Datum und Uhrzeit ins Log, die zweite Zeile führt den Import durch, die dritte Zeile benennt die Import-Datei um.
Aufgerufen wird es mit dem Argument ">> C:\Skript\log.txt 2>&1", damit die Ausgabe in log.txt geschrieben wird.
emeriks
emeriks 11.04.2018 um 16:25:35 Uhr
Goto Top
Versuche mal

"pfad zur Access.exe" "C:\Program ....... Screener.accde" ......
Woswaasi
Woswaasi 11.04.2018 um 16:28:20 Uhr
Goto Top
@Pjordorf:
Hier meine Einstellungen:
Allgemein: siehe Anhang
Trigger: täglich um 01:30 Uhr
Aktion: siehe Anhang
Bedingungen: siehe Anhang
Einstellungen: siehe Anhang
Verlauf: ist deaktiviert

Zu den beiden Links:
Die hatte ich bei meiner Fehlersuche beide schon gesehen, haben aber leider keine Lösung gebracht.
aktion
einstellungen
allgemein
bedingungen
Woswaasi
Woswaasi 11.04.2018 um 16:30:10 Uhr
Goto Top
@133941:

F5 habe ich bereits versucht, ändert nichts an der Anzeige.
Woswaasi
Woswaasi 11.04.2018 um 16:31:57 Uhr
Goto Top
Meinst du, die Anführungszeichen einzufügen?

Ich habe in der Batch-Datei den Pfad samt Datei bereits in Anführungszeichen.
Woswaasi
Woswaasi 11.04.2018 um 16:34:19 Uhr
Goto Top
Hallo Manuel,

ja, der Task soll in der Nacht laufen. Allerdings habe ich ihn auch schon öfter händisch in der Aufgabenplanung gestartet, wenn ich angemeldet war - ebenso per Zeitsteuerung.

Das hat aber leider auch nichts geändert.
emeriks
emeriks 11.04.2018 aktualisiert um 16:38:26 Uhr
Goto Top
Nein, ich meine, dass Du Dich nicht bloss darauf verlassen sollst, dass Windows mit dem Dokumentenpfad was anfangen kann, sondern, dass Du expizit die EXE starten sollst und dieser das Dokument übergeben sollst. Habe ich das wirklich so kompliziert geschrieben?
manuel-r
manuel-r 11.04.2018 aktualisiert um 16:41:44 Uhr
Goto Top
Ist der Benutzer "rma" unter dem der Task laufen soll der gleiche mit dem du auch am Desktop angemeldet bist wenn du die Batch von Hand ausführst?

Manuel
Woswaasi
Woswaasi 11.04.2018 um 16:52:04 Uhr
Goto Top
Ja, ist der gleiche Benutzer.
135950
135950 11.04.2018 aktualisiert um 16:56:07 Uhr
Goto Top
Hallo zusammen.
Wenn ich hier gerade eine Access-Datei sehe (accde), !bitte beachten! wenn hier mit ausgeführte Makros und/oder COM-Aktionen hantiert wird das man unbedingt achten sollte, dass folgende zwei Verzeichnisse existieren ("Desktop"-Ordner):

C:\Windows\SysWOW64\config\systemprofile\DesktopC:\Windows\system32\config\systemprofile\Desktop

Ist das nämlich nicht der Fall werden OLE und COM-Automation-Skripte die über die Aufgabenplanung ausgeführt werden nicht korrekt ausgeführt und bleiben entweder hängen oder verabschieden sich gleich ins Nirvana.

Hört sich blöd an, ist aber so.

Gruß m.
Woswaasi
Woswaasi 11.04.2018 um 17:04:58 Uhr
Goto Top
Achso, sorry, habe ich falsch verstanden.

Meines Wissens ist auf dem Server Access gar nicht installiert. Wir haben Microsoft SQL Server 2017 und die software des Herstellers installiert. Eine Suche nach access auf C: hat auch kein Ergebnis gebracht. Gestartet wird die Software des Herstellers über "MAGIC THipPro Screener.accde", für den Import gibt es noch die beiden Befehlszeilenparameter /CMD und /import_data.

Was mich aber wundert, wenn ich die Batch-Datei per Doppelklick starte, wird der Import korrekt durchgeführt. Daher sollte der Dokumentenpfad kein Problem sein.
Woswaasi
Woswaasi 11.04.2018 um 17:13:15 Uhr
Goto Top
Hallo,

die beiden angegebenen Pfade gibt es nur bis jeweils inklusive systemprofile. Der Ordner Desktop existiert nicht, in systemprofile gibt es jeweils nur die Ordner appdata.

Für den Zugriff auf config und systemprofile musste ich jeweils die Berechtigungen bestätigen, jetzt habe ich dauerhaft Zugriff.

Reicht es, wenn ich die beiden Desktop-Ordner einfach anlege?
135950
135950 11.04.2018 um 17:14:06 Uhr
Goto Top
Reicht es, wenn ich die beiden Desktop-Ordner einfach anlege?
Ja.
emeriks
emeriks 11.04.2018 um 17:28:06 Uhr
Goto Top
"accde" ist keine ausführbare Datei. Das ist ein Dokument. Welche EXE wird denn gestartet, wenn Du dieses Dokument öffnest? Diese EXE dann explizit in der Batch angeben.
Woswaasi
Woswaasi 12.04.2018 um 09:23:58 Uhr
Goto Top
Ich habe die beiden Desktop-Ordner angelegt, die Batch-Datei wird aber trotzdem nicht beendet, bleibt im Import hängen.

Trotzdem danke!
135950
135950 12.04.2018 aktualisiert um 09:42:15 Uhr
Goto Top
Da es sich hier um eine 32Bit Access Anwendung handelt solltest du die Applikation auch mal mit der 32Bit Variante der CMD aus dem Syswow64 Verzeichnis starten.
Woswaasi
Woswaasi 12.04.2018 um 09:55:26 Uhr
Goto Top
Guten Morgen,

beim Start des Imports wird doch msaccess.exe aufgerufen (warum die Suche die Datei nicht gefunden hat, ist mir ein Rätsel).

Ich habe in der Batch-Datei den Aufruf von msaccess.exe eingefügt, hat aber leider auch nichts geholfen.

Ich habe heute auch folgendes getestet:
Ich habe die Aufgabe manuell in der Aufgabenplanung getriggert, dabei den Taskmanager geöffnet.
Dort sehe ich, dass nach Start der Aufgabe ein Task für Microsoft Access (als Hintergrundprozess) gestartet wird, die CPU-Auslastung bei diesem Task ist für ein paar Sekunden bei etwa 5%, danach wird sie allerdings mit 0% angegeben.
Nach dem Abbruch der Aufgabe bleibt der Task MS Access bestehen.

Wenn ich die Batch-Datei direkt starte, wird Access im Taskmanager unter Apps gelistet, die CPU-Auslastung liegt durchgehend bei etwa 10%, bis der Import fertig ist. Danach wird auch der Task MS Access beendet.
emeriks
Lösung emeriks 12.04.2018 um 10:01:58 Uhr
Goto Top
Ich habe heute auch folgendes getestet:
Ich habe die Aufgabe manuell in der Aufgabenplanung getriggert, dabei den Taskmanager geöffnet.
Dort sehe ich, dass nach Start der Aufgabe ein Task für Microsoft Access (als Hintergrundprozess) gestartet wird, die CPU-Auslastung bei diesem Task ist für ein paar Sekunden bei etwa 5%, danach wird sie allerdings mit 0% angegeben.
Nach dem Abbruch der Aufgabe bleibt der Task MS Access bestehen.

Wenn ich die Batch-Datei direkt starte, wird Access im Taskmanager unter Apps gelistet, die CPU-Auslastung liegt durchgehend bei etwa 10%, bis der Import fertig ist. Danach wird auch der Task MS Access beendet.
Ich gehe davon aus, dass bei Ausführung im Task irgendwas nicht stimmt und Access eine Rückfrage stellt, welche beantwortet werden muss.

Was ist, wenn Du mal auf das Log verzichtest. Statt dessen die msaccess.exe direkt starten, mit diesen in der Batch genannten Parametern?
135950
135950 12.04.2018 aktualisiert um 10:11:33 Uhr
Goto Top
Wie sehen die Bedingungen für den Import aus? Wird immer genau eine Datei aus einem vorher in Access definierten Pfad genommen oder wird die Datei im aktuellen Arbeitsverzeichnis gesucht? In letzterem Fall solltest du explizit ins Arbeitsverzeichnis wechseln oder es im Aufgabenplaner angeben. Wie sieht es zusätzlich mit den Rechten aus? Der angegebene User im AP hat genügend Rechte im Zielverzeichnis des Imports?
Woswaasi
Woswaasi 12.04.2018 um 10:25:37 Uhr
Goto Top
BINGO!

Ich habe wie von dir vorgeschlagen eine neue Aufgabe erstellt, die MS Access mit den in der Batch angegeben Argumenten startet. Das hat funktioniert, der Import wurde gestartet.

Vielen Dank für den Tipp!
Vielen Dank auch allen anderen für eure Bemühungen!

Wenn jetzt noch jemand einen Tipp hat, wie ich die Durchführung des Imports mitloggen kann (ohne dass ich remote in den Verlauf der Aufgabenplanung schauen muss), dann ist für mich Ostern und Weihnachten zugleich face-wink
Woswaasi
Woswaasi 12.04.2018 um 10:29:38 Uhr
Goto Top
Die Import-Datei liegt immer im gleichen Ordner, der Pfad dorthin wurde einmal im Import-Tool von der Hersteller-Software konfiguriert.
In diesem Fall ist das E:\Import\. Der angegebene User hat dort Vollzugriff.
Woswaasi
Woswaasi 12.04.2018 um 10:50:51 Uhr
Goto Top
Hallo,
habe ich gerade ausprobiert, aber der Import selber wurde leider auch nicht gestartet (die Batch schon).
Woswaasi
Woswaasi 20.04.2018 um 14:40:52 Uhr
Goto Top
Der direkte Aufruf der MSACCESS.exe in der Aufgabenplanung mit der Datenbank als Argument hat dann doch nicht funktioniert hat (es hatte am Anfang so gewirkt, als würde der Import starten, das hat sich aber im Nachhinein als Irrtum herausgestellt). Heute habe ich in einem anderen Forum den entscheidenden Hinweis gefunden (den ich hier gerne teile):

Bisher hatte ich die Aufgabe als lokaler Admin (der eigentlich alle Rechte haben sollte) ausgeführt.
Ich habe jetzt das Benutzerkonto, mit dem die Aufgabe ausgeführt wird, auf "Administratoren" der lokalen Maschine geändert, jetzt läuft es wie am Schnürchen (das Fenster wird geöffnet, ich kann beim Import mitschauen).
ComputerAnfaenger007
ComputerAnfaenger007 27.06.2023 um 10:32:16 Uhr
Goto Top
Hi,
wollte mich nur kurz bedanken, dieser Beitrag hat mir geholfen meine eigene Aufgabe zum Laufen zu bekommen. Danke fürs Dranbleiben und Posten.
Viele Grüße