Dado que la API del programador de tareas se cambió después de Vista y Server 2008, programar una tarea contareases (hasta donde yo sé) la única forma que funciona tanto en Windows 2003 Server como en Windows 2008 Server.
Necesito crear una tarea que se ejecutará los días 5 y 20 de cada mes. ¿Es esto posible con schtasks.exe?
Es posible crear una tarea programada que se ejecutará todos los domingos y lunes de una semana con:
schtasks /create /tn test /tr "cmd.exe" /sc weekly /d mon,sun
Pero con el mismo aspecto, cualquiera de los siguientes no funciona.
schtasks /create /tn test /tr "cmd.exe" /sc monthly /d 5,15
schtasks /create /tn test /tr "cmd.exe" /sc monthly /d "5 15"
¿Algunas ideas?
Respuesta1
Cronogramadostareas mensuales. Uno para el día 5 y otro para el 15.
Respuesta2
Podrías crear una tarea usando un archivo XML:
schtasks /Create /XML xmlfile
(verdocumentación).
El XML debe contener una <ScheduleByMonth>
sección:
<ScheduleByMonth>
<DaysOfMonth>
<Day>5</Day>
<Day>15</Day>
</DaysOfMonth>
...
Puede crear el archivo XML utilizando la versión GUI del Programador de tareas. Utilice la función "Exportar". Aquí hay un archivo de ejemplo:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2010-01-21T13:24:17.7449831</Date>
<Author>DOMAIN\Username</Author>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>2010-01-21T13:23:34.4046495</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByMonth>
<DaysOfMonth>
<Day>5</Day>
<Day>15</Day>
</DaysOfMonth>
<Months>
<January />
<February />
<March />
<April />
<May />
<June />
<July />
<August />
<September />
<October />
<November />
<December />
</Months>
</ScheduleByMonth>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>DOMAIN\Username</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<IdleSettings>
<Duration>PT10M</Duration>
<WaitTimeout>PT1H</WaitTimeout>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<ShowMessage>
<Title>Test Message</Title>
<Body>TThis is a test task message.</Body>
</ShowMessage>
</Actions>
</Task>