Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Since task scheduler API has been changed after Vista & Server 2008, scheduling a task with schtasks is (as much as I know) the only way that works on both Windows 2003 Server and Windows 2008 Server.

I need to create a task that will run every on 5th and 20th of each month. Is this possible with schtasks.exe?

Creating a scheduled task that will run on every sunday and monday of a week is possible with:

schtasks /create /tn test /tr "cmd.exe" /sc weekly /d mon,sun

But with the same aspect, any of the following is not working.

schtasks /create /tn test /tr "cmd.exe" /sc monthly /d 5,15

schtasks /create /tn test /tr "cmd.exe" /sc monthly /d "5 15"

Any ideas?

share|improve this question
    
The mon,sun syntax doesn't work for me either. –  jwg Sep 24 at 16:30
    
Having a non-English locale settings may cause this, I believe. –  dereli Sep 27 at 21:32
    
Not sure, because /d "mon sun" does work. –  jwg Sep 28 at 22:23

2 Answers 2

up vote 3 down vote accepted

Schedule two monthly tasks. One for the 5th and one for the 15th.

share|improve this answer
    
+1. Simple and ingenious. –  joeqwerty Jan 21 '10 at 15:15
1  
Actually, I don't like this, but this seems to be the only solution. –  dereli Jan 26 '10 at 18:43

You could create a task using an XML file:

schtasks /Create /XML xmlfile

(see documentation).

The XML should contain a <ScheduleByMonth> section:

<ScheduleByMonth>
    <DaysOfMonth>
        <Day>5</Day>
        <Day>15</Day>
    </DaysOfMonth>
    ...

You can create the XML file using the GUI version of the Task Scheduler. Use the "Export" function. Here is an example file:

<?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>
share|improve this answer
    
/xml argument is not supported on Windows 2003 Server. –  dereli Jan 26 '10 at 18:41

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.