Planen Sie die Windows-Aufgabe jede Minute

13

Ich muss eine Windows-Aufgabe planen, um jede Minute ein Skript auszuführen. In den meisten Fällen muss das Skript nichts ausführen und ist sofort verfügbar. Wenn das Skript etwas ausführen muss, möchte ich, dass es den Job so schnell wie möglich startet, also das Intervall von einer Minute.

Jetzt ist die Benutzeroberfläche des Windows-Schedulers in den letzten Jahren ziemlich verwirrend geworden, sodass ich nicht sicher bin, wie eine Aufgabe unter Windows 2008 R2 jede Minute (oder 5 Minuten ..) am besten ausgeführt werden kann.

Ist dies die beste Methode, um eine Aufgabe jede Minute unter Windows zu planen? Ist es zuverlässig? Wird es direkt nach dem Neustart eines Computers gestartet oder wird es erst um 12:00 Uhr erneut gestartet? Bitte beachten Sie, dass ich hierfür keine benutzerdefinierte Dienstanwendung verwenden / schreiben kann, da diese sehr portabel sein muss.

Dennis G.
quelle
Nein, es ist nicht der beste Weg. Sie sollten in Ihrem Skript eine Schlaf- oder Wartefunktion verwenden.
Joseph Kern

Antworten:

4

Ja, dieser Dienst wird nach dem Neustart ausgeführt. Sie können ihn im Transaktionsprotokoll des Taskplaner-Diensts überprüfen:

    Systemroot \ SchedLgU.txt

    (wobei Systemroot Ihr Windows-Installationsordner ist)

Wenn es nicht richtig funktioniert (unter XP unsicher, was 2008 entspricht):

    
    Systemsteuerung -> Verwaltung -> Dienste -> Taskplaner 

    Auf auto einstellen. 

2008 Dokumentation hier , XP Dokumentation hier

Der Zeitplan der Aufgabe beginnt zum angegebenen Zeitpunkt und wird anschließend auf der Grundlage der Wiederholungsparameter ausgeführt. Die Startzeit kann als "Task-Installationszeit" betrachtet werden und ist nicht Teil der Wiederholungsparameter (außer als Timer-Offset). Hoffe das macht Sinn!

Andy
quelle
Ich meinte eigentlich, wenn die Maschine neu gestartet wird, die Aufgabe direkt nach dem Neustart erneut ausgelöst wird oder erst um 12 Uhr neu gestartet wird , wie in der GUI angegeben? Ich muss die Aufgabe jede Minute ausführen, unabhängig von einem Neustart der Maschine usw.
Dennis G.
Und wie kann ich sehr, wenn eine Aufgabe ausgeführt wurde? Wird es irgendwo im Ereignisprotokoll protokolliert? Ich kann keine Protokolleinträge finden. Vielen Dank.
Dennis G.
Aktualisierte Antwort zur Klarstellung
Andy
18

Ich hatte die gleiche Anforderung. In Server 2008 können Sie die Wiederholungsaufgabe tatsächlich folgendermaßen ändern : Dropdown. Standardmäßig ist der niedrigste Wert "5 Minuten" , aber Sie können dort einfach "1 Minute" eingeben. Sie können dies überprüfen , indem Sie auf der Suche Trigger Registerkarte und zu sehen , dass es sagt , „... jede 00:01:00 wiederholen ...“ . Sie können auch versuchen, "10 Sekunden" einzugeben, und Sie erhalten eine Fehlermeldung, in der Sie aufgefordert werden, einen Wert größer als 1 Minute zu wählen.

coryvb123
quelle
3
Dies war der Teil der Frage, an der ich interessiert war. Ich kann bestätigen, dass dies 2012 R2 noch funktioniert.
Melikoth
8

Ich kann eine Aufgabe so terminieren, dass sie einmal pro Minute mit der Befehlszeile "schtasks" wiederholt wird. Ein Beispiel für den Code ist:

schtasks / create / sc minute / mo 1 / tn "Aufgabenname" / tr c: \ temp \ filename.exe

Die Aufgabe wird in der Windows 2008 R2-Benutzeroberfläche angezeigt und einmal pro Minute ausgeführt. Die Aufgabe muss mit dem Befehlszeilenprogramm "schtasks" erstellt und geändert werden.

Leider hat Microsoft törichterweise den Windows 2008 R2-Taskplaner entwickelt und die flexible Konfiguration aus dem Windows 2003-Taskplaner zugunsten einiger begrenzter Intervalloptionen verworfen.

davephan

davephan
quelle
Dies funktioniert auf Win7. Vielen Dank.
Vladimir Vukanac
-1

versuchen Sie das, arbeitete für mich ...

REM ==================================== ===============

REM # MAINBODY

REM ==================================== ==============

if "% 1" == "" echo Verwendung: - C: \ scripts \ port_schtask.cmd ^^ &&% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul && exit

falls nicht vorhanden C: \ scripts \ port.bat echo Verwendung: - Datei existiert NICHT C: \ scripts \ port.bat &&% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul && exit

% SystemRoot% \ system32 \ schtasks / delete / tn "port.bat% 1% 2" / f

% SystemRoot% \ system32 \ schtasks / create / tr "C: \ scripts \ port.bat% 1% 2" / SC MINUTE / MO 1 / tn "port.bat% 1% 2" / RU "SYSTEM"

% SystemRoot% \ system32 \ SCHTASKS / run / TN "port.bat% 1% 2"

% SystemRoot% \ system32 \ SCHTASKS |% SystemRoot% \ system32 \ find.exe "port.bat% 1% 2"

% SystemRoot% \ system32 \ schtasks / query / TN "port.bat% 1% 2"

% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul

rem ------------------------------------------------- -----

Prost RJB

RJB
quelle
Warum führen Sie irrelevante Aktionen wie das Pingen von localhost aus?
Wiedereinsetzung von Monica-dor duh