¿Cómo programar una tarea para varios días de un mes usando schtasks.exe?

¿Cómo programar una tarea para varios días de un mes usando schtasks.exe?

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>

información relacionada