Windows

如何使用 schtasks.exe 在一個月的多天安排任務?

  • January 21, 2010

由於任務調度程序 API 在 Vista 和 Server 2008 之後發生了變化,因此使用schtasks調度任務是(據我所知)在 Windows 2003 Server 和 Windows 2008 Server 上都可以使用的唯一方法。

我需要創建一個任務,該任務將在每個月的 5 號和 20 號執行。這可能與 schtasks.exe 嗎?

可以通過以下方式創建將在每週的每個星期日和星期一執行的計劃任務:

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

但是在相同的方面,以下任何一項都不起作用。

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

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

有任何想法嗎?

安排兩個月度任務。5個一個,15個一個。

您可以使用 XML 文件創建任務:

schtasks /Create /XML xmlfile

(見文件)。

XML 應該包含一個<ScheduleByMonth>部分:

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

您可以使用任務計劃程序的 GUI 版本創建 XML 文件。使用“導出”功能。這是一個範例文件:

<?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>

引用自:https://serverfault.com/questions/104948