2017-07-27 6 views
0

Also habe ich mehrere Methoden recherchiert und getestet, um dies zum Laufen zu bringen, aber unser IT-Mitarbeiter und ich sind unsicher, wie es weitergehen soll. Letztendlich muss ich drei Python-Skripte auf einem Server ausführen, die eine Reihe von Excel-Dateien betrachten und sie auf Fehler überprüfen. Wenn es Fehler gibt, werden die entsprechenden Personen per E-Mail benachrichtigt, um sie zu beheben. Die Skripts selbst funktionieren einwandfrei, wenn sie einzeln oder in einer Batch-Datei über die CMD-Eingabeaufforderung ausgeführt werden. Diese Skripts funktionieren einwandfrei, wenn sie manuell über die Eingabeaufforderung ausgeführt werden.Python-Skripte können nicht über den Scheduler korrekt ausgeführt werden

Wenn ich jedoch versuche, eines der Skripts oder die Batch-Datei zu planen, werden sie nicht vollständig ausgeführt. Ich habe eine print-Anweisung früh in den Skripten und das läuft gut in der Python.exe, aber dann wird das Skript abrupt beendet. Das lässt mich denken, dass Python gut läuft, aber der Inhalt des Skripts nicht korrekt durch den Scheduler läuft.

Um die Fehlersuche zu vereinfachen, habe ich zwei Testskripte test.py und test2.py erstellt und in ein einfaches Verzeichnis des Servers C: \ Store gestellt. All dieses erste Skript macht etwas auf die Konsole und schreibt etwas in eine Datei und speichert es im Stammverzeichnis, wonach es auf Benutzereingaben wartet. Das zweite Skript ist einfacher und druckt nur die Architektur von Python und seinen Build-Pfad. Beide Skripts funktionieren ordnungsgemäß, wenn sie manuell über die Eingabeaufforderung ausgeführt werden.

**test.py** Does NOT Work as scheduled task 
import io 

print('JUST WORRRRRKKK!') 

with open("//kaicmapp/Store/foobar.txt", "w") as file: 
    file.write("Hello!") 

    file.close() 

raw_input("press any button") 



**test2.py** Works as scheduled task 
import sys 
import platform 

print("Python EXE  : " + sys.executable) 
print("Architecture : " + platform.architecture()[0]) 

raw_input("\n\nPress ENTER to quit") 

Was ich für diesen Test-Scripts bin mit:

  • Python 2.7 32-Bit-
  • Windows Server 2012
  • Windows-Benutzerprofil mit Admin-Rechten
  • Python 2.7 exe hinzugefügt, wie Umwelt Variable. Umbenannt in Installationsverzeichnis python2.exe, wie ich habe auch 3 Python installiert auf dem serverand sie in der Lage sein wollen, ausschließlich laufen

Dinge, die ich versucht habe:

  • Lauftaskplaner als Admin nur
  • Run mit/ohne höchsten Privilegien
  • Run wenn aktuelle Benutzer in
  • Run angemeldet ist unabhängig vom aktuellen Benutzer angemeldet, das Passwort korrekt eingegeben
  • Führen Sie die Skripts in einer Batch-Datei
  • Die Lösung here, ergibt gleiches Ergebnis in beide

Things Skripte aufgelistet habe ich bemerkt:

  • Mit python2 „C: \ Store \ test2.py " im Scheduler führt das Skript erfolgreich aus, wobei die Eingabeaufforderung auf Benutzereingaben wartet. Das Ergebnis des Schedulers lautet Der Vorgang wurde erfolgreich abgeschlossen. (0x0)
  • Mit der gleichen Aufgabe wie oben, aber läuft test.py stattdessen, wird keine Ausgabe von der Python-Shell, es erscheint einfach und verschwindet. Run Ergebnis vom Scheduler sagt Falsche Funktion.(0x80070001)

Irgendwelche Ideen auf, wie man fortfährt? Ich bin mit Server-Verwaltungsaufgaben nicht sehr vertraut, daher fühle ich mich hier ziemlich verloren.

Antwort

Verwandte Themen