Gibt es Probleme beim Ausführen geplanter Aufgaben in Windows 2003, wenn die Aufgabe über eine grafische Benutzeroberfläche verfügt? Ich habe eine, die in Windows 2000 gut funktioniert hat, aber unter Windows 2003 nicht ausgeführt werden kann.
Einzelheiten:
Ich habe einen .bat-Job, der viele Jahre lang stündlich auf einem alten Windows 2000-Server ausgeführt wurde. Ich habe diesen Server letzte Woche endgültig außer Betrieb genommen und den Job (und die zugehörigen Programme und Dateien) auf einen Windows 2003-Server verschoben.
Die .bat-Datei ruft zuerst ein paar cmd-Zeilen-Apps auf, aber der letzte Schritt ist eine GUI-basierte .NET-App (sie führt eine OCR für Bilddateien durch und fährt sich dann selbst herunter).
Auf dem neuen Server, der als Eigentümer der geplanten Aufgabe angemeldet ist, kann ich die .bat-Datei erfolgreich über die Befehlszeile ausführen.
Auf dem neuen Server, der erneut als Eigentümer der geplanten Aufgabe angemeldet ist, kann ich mit der rechten Maustaste auf die Aufgabe im Planer klicken und sie erfolgreich ausführen. Diese Aufgabe führt einfach dieselbe .bat-Datei aus.
Wenn der Eigentümer der geplanten Aufgabe am 2003-Server angemeldet ist und die Aufgabe von einem Remoteserver aus gestartet wird (auf dem der Benutzer die geplanten Aufgaben gestartet und mit diesem Server verbunden hat), wird sie ebenfalls erfolgreich ausgeführt.
Wenn der Eigentümer der geplanten Aufgabe nicht an diesem Server angemeldet ist, schlägt die geplante Aufgabe in dem Schritt fehl, in dem die GUI-App gestartet wird. Wir können keine Fehlermeldungen erhalten. Das Ausführen von ProcMon von einem anderen Sitzungs- / Benutzerkonto aus, das dieses Benutzerkonto überwacht, hat ebenfalls nichts ergeben.
Im Moment besteht meine schreckliche Lösung darin, den Eigentümer der geplanten Aufgabe mit gesperrtem Bildschirm an der Konsole angemeldet zu lassen. Dies wird natürlich jedes Mal zu einem Problem, wenn der Server neu gestartet wird ...
Der Eigentümer der geplanten Aufgabe ist unser "Domänendienstkonto" und arbeitet mit allen anderen Aufgaben auf allen anderen Servern. Es ist nicht ausgesperrt oder so etwas.
Ich habe sogar versucht, den Taskplaner so zu ändern, dass das Kontrollkästchen "Dienst darf mit Desktop-Box interagieren" aktiviert ist, aber das hat nichts geändert. (Ja, ich habe den Dienst nach der Änderung neu gestartet.)
Gedanken?
Aktualisiert (19.01.2010)
Ich muss ein wenig klarstellen: Die erwähnte .NET-App macht eine Menge Dinge, die funktionieren. Erst wenn der Punkt erreicht ist, an dem ein Fenster geöffnet werden muss, hängt die App. Wir können den Fortschritt der App anhand der Protokollierungseinträge sehen, die sie hinterlässt, sodass wir sehen können, dass sie einwandfrei funktioniert, wenn der letzte Protokolleintrag "kurz vor dem Start von OCR" ist ... und dort hängt sie.
Antworten:
Haben Sie Zugriff auf den Quellcode des Programms zum Debuggen? Es hört sich so an, als ob die Windows-Erstellung fehlschlägt, da dem Programm kein Windows-Desktop zur Verfügung steht, es sei denn, der Aufgabenbesitzer ist am Computer angemeldet. Dieser Artikel http://msdn.microsoft.com/en-us/library/ms687105%28VS.85%29.aspx beschreibt den Prozess für die Erstellung von Fensterstationen und Desktops.
quelle
Soll die Aufgabe in einem bestimmten Verzeichnis gestartet werden? Die Berechtigungen werden in den Verzeichnissen, in die gelesen / geschrieben wird, korrekt eingerichtet.
Ich gehe davon aus, dass das "Ausführen als" in der Aufgabe korrekt eingerichtet ist (ich muss die Grundlagen überprüfen! :))
Haben Sie überprüft, ob das Konto ausgeführt wird, für das die Aufgabe das Recht hat, sich als Stapeljob anzumelden (Lokale Sicherheitsrichtlinie \ Lokale Richtlinien \ Zuweisungen von Benutzerrechten \ Als Stapeljob anmelden)?
quelle
Das Problem hierbei ist, dass für das von Ihnen ausgeführte Programm eine grafische Benutzeroberfläche erforderlich ist. Aufgaben haben keine Windows-GUI. Wenn Sie das Programm also ohne GUI ausführen können, sind Sie in Ordnung.
quelle