ztommy
Goto Top

Win Server 2012 R2 - per Task Scheduler eine EXE-Datei starten

Hallo Gemeinde face-smile

nach langem suchen im Netz, wende ich mich doch hierher.

Ich muss auf einem Server per Task Scheduler, zeitgesteuert, eine EXE-Datei starten.
Dies muss dann geöffnet werden und es wird ein Report erzeugt, der dann in einem Verzeichnis abgelegt wird.

Rechte für den User sind entsprechend vorhanden, über den der Task läuft.
Ob der User nun am Server angemeldet ist oder nicht.
Anbei 2 Screenshots, bzgl. den Einstellungen bzw. der Fehlermedlung, die ich in der History sehe.
Leider finde ich auch nichts gescheites dazu, was das sein könnte.

Mein Gedanke ist gerade, muss ich im Task angeben bzw. kann ich im Task angeben, mit welcher User-ID das Program bzw. die EXE gestartet werden soll?
Die User-ID, die den Task startet ist auch die User-ID, die die EXE dann öffnen muss.


Eventuell auch die Alternative, dass ich ein PowwerShell Skript habe, was ich dann per Task starte.

Das im Script die Exe mit dem entsprechenden User geöffnet und nach ca. 10Minuten wieder geschlossen wird.
Bestenfalls, das ich die User-ID eintragen kann incl Passwort, dass es da dann keine Probleme gibt.

Nach powerShell habe ich im netz auch geschaut.
Leider nichts passendes und ich bin da leider nicht firm drin.

Könnt Ihr mir da helfen?

Das wäre schön face-smile

Ich danke vorab schon einmal für Eure Mühe

Grüße
2
1

Content-ID: 591240

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

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

145033
145033 28.07.2020 aktualisiert um 15:21:27 Uhr
Goto Top
Zitat von @ZTommy:
Ich muss auf einem Server per Task Scheduler, zeitgesteuert, eine EXE-Datei starten.
Dies muss dann geöffnet werden und es wird ein Report erzeugt, der dann in einem Verzeichnis abgelegt wird.
Rechte für den User sind entsprechend vorhanden, über den der Task läuft.
Ob der User nun am Server angemeldet ist oder nicht.
OK,
  • Das Verzeichnis liegt wo? Netzlaufwerk oder lokal? Wenn Netzlaufwerk bitte erst mal nur UNC-Pfade nutzen statt gemappte Laufwerke.
  • Hat der User passende Rechte für das Verzeichnis in dem die Reports abgelegt werden?
  • Passende Rechte um die Exe ausführen zu dürfen
  • User darf sich an dem Rechner auch anmelden?

Anbei 2 Screenshots, bzgl. den Einstellungen bzw. der Fehlermedlung, die ich in der History sehe.
Leider finde ich auch nichts gescheites dazu, was das sein könnte.
Die Fehlermeldung deutet auf einen Low-Level CLR .NET Fehler der Anwendung hin. Schau ins Application-Log rein dort sollte ebenfalls was zu sehen sein, ansonsten die Exception in der Abfangen und loggen lassen.

Mein Gedanke ist gerade, muss ich im Task angeben bzw. kann ich im Task angeben, mit welcher User-ID das Program bzw. die EXE gestartet werden soll?
Natürlich, das legst du ja schon in den Einstellungen des Tasks fest mit der dieser ausgeführt wird. Mit diesen Credentials wird auch die EXE ausgeführt weil die die Credentials von der Umgebung des Tasks erbt .
Eventuell auch die Alternative, dass ich ein PowwerShell Skript habe, was ich dann per Task starte.
Damit könntest du höchstens erreichen das du mehr Infos zum Fehler bekommst wenn es eine Konsolenapplikation wäre und die Exception in StdErr oder StdOut ausgegeben wird. Dazu dann die Exe so kapseln und ein Log schreiben lassen (Achtung auch für den Ordner müssen Schreibrechte vorhanden sein)
Start-Transcript "D:\Ordner\log.txt"  
start "C:\Pfad\deineexe.exe" -ArgumentList "/open" -wait  
Stop-Transcript
Aber wie gesagt bringt dir nur was wenn es im Ursprung eine Konsolen-Applikation ist.

Das im Script die Exe mit dem entsprechenden User geöffnet und nach ca. 10Minuten wieder geschlossen wird.
Wer schließt es, die Anwendung sich selbst, der Task mit Timeout oder was sonst??
Bestenfalls, das ich die User-ID eintragen kann incl Passwort, dass es da dann keine Probleme gibt.
Die stehen schon in den Task-Einstellungen!

Beachte auch das nicht jede Anwendung ohne einen Desktop bzw. UI klar kommt wenn diese als unbeaufsichtigt als Task ausgeführt wird!! Kläre das beim Hersteller der App ab
ZTommy
ZTommy 29.07.2020 um 12:22:10 Uhr
Goto Top
Hallöchen face-smile

Ersteinmal vielen lieben Dank, das Du geantwortet hast face-big-smile

1. Rechte und alles sind vorhanden auf die Ordner.
2. die EXE liegt lokal in einem Ordner. Das einzige ist, der Ordner ist als Share eingerichtet.
3. Mit dem Hersteller wurde gesprochen. Seinerseits gibt es da keine Probleme.
4. Danke für den ersten Tipp, aber dis ist leider keine Konsolenapplikation.
5. da wird wohl das Problem liegen. Der Low-Level CLR .NET Fehler wird mir die Software blockieren.
Dadurch wird mir wohl die Anwendung nicht starten.
Laut History lüft der Task sauber durch. Task startet, dann die Applikation, dann wird beides beendet und als completed gemeldet.
nur bei Resultet erscheint dieser (OxE0434352) Fehler.

Ich probiere jetzt mal mit meiner User-ID, zum Test, Notepad zu starten.
Wenn das läuft, dann kann der Fehler nur beim .Net sein.

Wäre dann blöd....

danke Dir nochmal.
Hast mir schon gut geholfen face-big-smile

Eventuell vielleicht doch per Script den Start durch ein Task.
Mal probieren...

Grüße
145033
145033 29.07.2020 aktualisiert um 12:29:48 Uhr
Goto Top
Wenn das läuft, dann kann der Fehler nur beim .Net sein.
Nein nicht bei .NET, bei der Anwendung die diese Exception nicht per Try-Catch abfängt 😉.
Solche Fehler weisen meist auf mangelhafte Programmierung der Anwendung hin.

, aber dis ist leider keine Konsolenapplikation.
Dann kommt die Anwendung vermutlich nicht ohne Desktop klar.
ZTommy
ZTommy 29.07.2020 um 12:33:50 Uhr
Goto Top
Oha... o_O

also mus die anwendung per Try-Catch abgefangen werden?

Laut einer java-Seite dient das dazu, zum Abfangen von Programmfehlern.

ist das richtig?

Grüße face-smile
145033
145033 29.07.2020 aktualisiert um 12:56:41 Uhr
Goto Top
Zitat von @ZTommy:

also mus die anwendung per Try-Catch abgefangen werden?
Nein, der Code innerhalb der Anwendung selbst.

Laut einer java-Seite dient das dazu, zum Abfangen von Programmfehlern.

ist das richtig?
Ja, sogenannte "Exceptions". Mit dem Try Catch Konstrukt fängt der Programmierer solche Fehler ab und kann dann entsprechend darauf reagieren und dem User z.B. entsprechende Hinweise oder Exit-Codes bereitstellen.
Für mich sieht das zu 90% so aus als wenn die Anwendung nicht für unbeaufsichtigte Ausführung ohne Desktop geeignet ist, da wird dann nur der Hersteller korrigieren können, oder man lässt es zwangsweise in einer Angemeldeten Session laufen (sehr unschön).
ZTommy
ZTommy 29.07.2020 um 13:23:40 Uhr
Goto Top
Meine Herren....
Nicht schlecht, was Du hier an dem Problem siehst...

Weißt Du eventuell was für ein Typ der Exceptions das sein kann?
Oder eventuell in welchem Stepp, Absatz oder so?

Es scheint daran zu liegen bzw. generell an der Anwendung.

ich habe das mal mit Notpad gemacht.
Das klappt ohne Probleme.
Mache ich das mit der Anwendung, sehe ich unter Prozesse, das diese kurz erscheint und dann sofort wieder verschwindet.

Ohne Dich würde ich immer noch rätseln...

Respekt face-smile
145033
145033 29.07.2020 aktualisiert um 13:57:32 Uhr
Goto Top
Stell die EXE doch mal zum Download dann kann ich die durch den Debugger jagen und dir vielleicht einen Lösungsansatz geben .
Sorry aber Anweisungen wie du das selbst machen könntest wären jetzt wohl offensichtlich zu komplex für dich.
Wenn das Bereitstellen der EXE nicht möglich ist wird's von hier aus sehr schwer weiter zu machen.
ZTommy
ZTommy 29.07.2020 um 14:20:31 Uhr
Goto Top
Kann ich leider nicht face-sad

das ist Sofware von einem Hersteller für ein Konzern.
Da unterliege ich den Datenschutzrichtlinien...
Sorry...

Hätte gedacht, das Du vielleicht ein Tipp hast, in welchem Stepp oder Absatz eventuell der Fehler zu vermuten sei.
Bei der Programmiersprache Cobol, zum Beispiel, gibt es ja 4 Bereiche, wo man suchen könnte.
Dort gibt es ja die IDENTIFICATION-, ENVIRONMENT-, DATA und PROCEDURE DIVISION.

Eventuell, das man im Try Catch Konstrukt halt eingrenzen kann.

Das Du jetzt nicht die Arbeit dafür übernimmst, das ist klar.
Aber wenn man eventuell ein Tipp hat, wo man dies eingrenzen kann, wäre für mich gut.

Wenn nicht, dann ist das jetzt nicht schlimm.
Du hast bis dato genug geholfen face-smile
145033
Lösung 145033 29.07.2020 aktualisiert um 14:24:43 Uhr
Goto Top
Naja, ohne irgendeinen Hinweis zu haben was der Code überhaupt macht geschweige denn ohne vorliegenden MaschinenCode kannst du dir sicher vorstellen daß das so gut wie unmöglich ist hier über Forenmittel irgendwas konkretes zu verzällen.
Wende dich dann eben nochmal konkreter an den Hersteller mit deinem spezifische Problem.
ZTommy
ZTommy 29.07.2020 um 16:09:06 Uhr
Goto Top
alles gut Kleiber face-smile

hast mir schon gut geholfen.
so bin ich dem wenigstens nahe gekommen, woran es liegen mag.

ich Danke Dir nochmals face-smile

Da es hier keine Lösung geben wird, schließe ich damit die Anfrage von mir.