In dem letzten HowTo ging es um Windows Services und sc.exe, diesmal wende ich mich den Scheduled Tasks zu. "schtasks" ist ein nettes Tool mit dem man lokal und remote Scheduled Tasks anlegen, löschen, abfragen und bearbeiten kann.
schtasks
Hier mal der Syntax aus der MSDN für das Erstellen eines Tasks:
schtasks /Create [/S system [/U username [/P [password]]]] [/RU username [/RP [password]] /SC schedule [/MO modifier] [/D day] [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime] [/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]] [/SD startdate] [/ED enddate] [/IT] [/Z] [/F]
Anwendungsfall
Wir benutzen eine Batch-Datei für das "installieren" einer neuen Version. Mit einem Klick werden IIS 6 Websites, Windows Services und nun auch Scheduled Tasks entsprechend angepasst. Für uns am interessantesten war der "TR" Parameter mit dem man den genauen Pfad des Programm angibt und der "change" Befehl.
Wenn wir eine neue Version gebaut haben und auf den Server kopiert haben haben wir z.B. folgende Ordnerstruktur:
C:\Projektname\1.0.0.0\WindowsService1\windowsservice1.exe
C:\Projektname\1.0.0.0\Website1\...aspx...
C:\Projektname\1.0.0.0\ScheduledTasks1\scheduledtask1.exe
Wenn jetzt Version 1.0.0.1 dazukommt legen wir diesen in den "Projektname" Ordner. Im Version 1.0.0.1 Ordner liegt dazu noch das Batchfile zum "scharf" schalten der Version - keine große Magie, aber praktisch und falls doch was schief geht ist die alte Version auch noch vorhanden :)