Ich versuche, eine Batchdatei unter Windows 7 über den Taskplaner auszuführen. Ich kann die Batchdatei problemlos ausführen, wenn ich sie an der Eingabeaufforderung ausführe.
Wenn ich es über den Taskplaner ausführe, um es nur auszuführen, wenn der Benutzer angemeldet ist, wird die Aufgabe ohne Probleme ausgeführt. Wenn es jedoch ausgeführt wird, wenn der Benutzer nicht angemeldet ist, sieht der Taskplaner so aus, als würde die Datei ausgeführt, aber es passiert nichts.
Ich habe versucht, die Batchdatei in nichts anderes als die folgende Zeile zu ändern, um sicherzustellen, dass dies nicht an der Batchdatei liegt:
echo "success" >> c:\temp\test.log
und das funktioniert nicht. Irgendwelche Ideen? Ich habe es mit den höchsten Berechtigungen und mit einem Administratorkonto ausgeführt, das über die vollständigen Berechtigungen für die Batchdatei und den Ordner verfügt, in den die Datei geschrieben wird.
quelle
Antworten:
AUFGABENPLAN: GEPLANTER BATCH-SCRIPT LÄUFT NICHT
Eigenschaften des Taskplaners. . .
Von Windows
Task Scheduler
im JobProperties
(siehe unten die meisten Screenshots) in der. . .1.
General
Stellen Sie auf der Registerkarte sicher, dass die folgenden Optionen wie in Druckbildschirm A gezeigt ausgewählt / aktiviert oder deaktiviert sindRun only when user is logged on
Run whether user is logged on or not
Run with the highest privileges
2.
Conditions
Stellen Sie auf der Registerkarte 2 sicher, dass die folgenden Optionen ausgewählt , aktiviert oder deaktiviert sind, wie in Druckbildschirm B gezeigtWake the computer to run this task
3.
Actions
Klicken Sie auf die Registerkarte, klicken Sie daraufEdit
, und stellen Sie sicher, dass dasStart in (optional)
Feld wie im folgenden Beispiel gezeigt eingestellt ist ( setzen Sie KEINE doppelten Anführungszeichen), um den vollständigen Pfad anzuzeigen, der darauf verweist, wo sich das Stapelskript befindet, OHNE einen endgültigen Backslash "\
". Druckbildschirm C.SICHERHEITSHINWEISE
Sobald Sie
OK
( 2. oben) drücken, werden Sie aufgefordert, den Berechtigungsnachweis als auszuführen. Dieser Berechtigungsnachweis benötigt Zugriff aufEXECUTE
die Batchdatei, in der er vorhanden ist, und er muss auch Zugriff haben, um die Batchdatei auszuführen, die ausgeführt wird dass du ausgeschrieben hast.Es ist möglicherweise am besten, ein statisches Dienst- / Proxy-Benutzerkonto für diesen Prozess einzurichten und dann seine Anmeldeinformationen zu verwenden, um den Prozess auszuführen. Sie müssen sicherstellen, dass das Kennwort sicher ist und niemals abläuft. Außerdem muss der Zugriff auf
EXECUTE
den Stapel erfolgen und ausgeführt werden, unabhängig davon, welcher Batch-Skriptprozess ausgeführt wird, sowie alle Befehle und Ressourcen usw. es nutzt auch.Es scheint die Option zu sein, die
Run whether user is logged on or not
Sie aktivieren MÜSSEN,Run with highest privileges
damit sie tatsächlich wie vom Taskplaner erwartet ausgeführt wird.Fehlerüberprüfung
Wenn es ein Problem mit dem eigentlichen Batch-Skript gibt, der Windows- Taskplaner es jedoch tatsächlich ausführt, um es auszuführen, die Logik des Batch-Skripts jedoch aus irgendeinem Grund ausfällt, wird dieser Fehler auf dieser Ebene möglicherweise vom Taskplaner nicht angezeigt. Aus seiner Sicht (standardmäßig meistens) führt es die Batchdatei aus, solange es sie ausführen kann und Zugriff darauf hat, und seine Arbeit erfolgreich ausgeführt wird.
Fügen Sie der Stapelskriptlogik eine Fehlerprüfung oder -protokollierung hinzu , um Probleme auf dieser Ebene zu erkennen (oder zu beheben ), einschließlich der Sicherstellung, dass der Sicherheitskontext, in dem der Stapelplaner sie ausführt, über den entsprechenden Zugriff auf Befehle, Ressourcen usw. verfügt, unter denen das Stapelskript ausgeführt wird.
Überlegungen zu Gruppenrichtlinien
PRÜFEN SIE DIE GRUPPENPOLITIK UND DIE ANMELDUNG ALS BATCH JOB-ERLAUBNIS
Batch-Skriptlogik mit zugeordneten Laufwerken oder vollständigem UNC-Pfad und Problemen. . .
Wenn Ihr Skript auf ein zugeordnetes Netzwerklaufwerk verweist, dies jedoch gewünscht wird
Run whether the user is logged on or not
, ist die Laufwerkszuordnung in diesem Kontext möglicherweise nicht für den Stapelverarbeitungsprozess vorhanden, um die erwarteten Aktionen auszuführen.Verwenden Sie nach Möglichkeit
UNC
Pfade in Ihrer Batch-Skriptlogik anstelle eines zugeordneten Laufwerksbuchstabens, um Probleme zu vermeiden. Andernfalls müssen Sie möglicherweise zuPUSHD \\ServerName\ShareName
Beginn des Batch-Prozesses und dannPOPD
am Ende des Batch-Prozesses verwenden. Sie können das LaufwerkNET USE X: \\ServerName\ShareName
zu Beginn des Stapelprozesses zuordnen und dann das LaufwerkNET USE X: /DELETE
am Ende des Stapelprozesses trennen .ANDERE
MS HOTFIX (KB977353): Das Einstellungselement "Gruppenrichtlinien-Sofortaufgabe" wird nicht auf einem Clientcomputer ausgeführt, auf dem Windows 7 oder Windows Server 2008 R2 ausgeführt wird
Sehen Sie sich die
Settings
Registerkarte der geplanten Aufgabe und die Option an, die als aufgeführt istStop the task if it runs longer than:
. Wenn diese Option aktiviert ist und der Zeitraum kürzer als ein ausgeführtes Skript ist, wird sie vom Taskplaner vorzeitig beendet, sodass Sie möglicherweise nicht die erwarteten Ergebnisse erhalten. Dies ist etwas anderes zu überprüfen, wenn Sie Fehler beheben, nur für den Fall.Triggers
Stellen Sie auf der Registerkarte der geplanten AufgabeEdit
sicher, dassStart:
Uhrzeit und Datum einen Wert haben, der NICHT bereits übergeben wurde, wenn Sie die Option auswählen . Stellen Sie sicher, dass Datum und Uhrzeit auf den Wert eines zukünftigen Werts eingestellt sind . Andernfalls stellen Sie möglicherweise fest, dass der Job angibt, dass die Ausführung zum nächsten geplanten Zeitpunkt wie erwartet geplant ist. Allerdings ist es nicht ausgeführt werden soll Task Scheduler noch ist der TaskplanerHistory
Registerkarte zeigt , dass es überhaupt ausgeführt wird (weil es nicht). Bearbeiten Sie einfach den Auslöser und aktualisieren Sie ihn mit einem zukünftigen Datum und / oder einer zukünftigen Uhrzeit, um dieses Problem zu beheben, wenn es auftritt.BILDSCHIRME DRUCKEN
Druckbildschirm A.
Druckbildschirm B.
Druckbildschirm C.
quelle