我正在尝试设置一项日常任务(从批处理脚本运行 CTest)。我使用了 Vista Pro 32 位的默认 GUI,并设置了以下任务:
> schtasks /query /tn "trunk nightly" /xml
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2014-04-17T11:44:43.2643714</Date>
<Author>PC-de-optiplex3\voxxl</Author>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>2014-04-17T05:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<RunLevel>HighestAvailable</RunLevel>
<UserId>PC-de-optiplex3\voxxl</UserId>
<LogonType>Password</LogonType>
</Principal>
</Principals>
<Settings>
<IdleSettings>
<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>true</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>C:\Dashboards\ctest_scripts\hpdesk_openjpeg.bat</Command>
<WorkingDirectory>C:\Dashboards\ctest_scripts\</WorkingDirectory>
</Exec>
</Actions>
</Task>
从 GUI 中,它告诉我最后一次运行发生在第24届,而今天是第28届,显然它运行适当地几天后就停止了。有没有办法设置一个每天运行的 Windows 任务,日常的基础?我的用户具有管理员权限,有密码,并且工作站已正确插入(周末没有停电)。
从中可以看出XML输出,标志WakeToRun
已正确设置为true
。但是,从电源管理系统中,我无法设置著名的Allow wake timers
(法语界面,但显然缺少第 4 个参数,只需与这)
这是我点击后的相同屏幕截图Change settings that are currently unavailable
:
上面的代码很明显不使用任何 UI至少当我在 Windows 调度程序面板上右键单击“执行”时,它不会打开任何内容。手动执行时,它运行顺利。
看起来好像计算机处于睡眠状态时任务无法运行......
答案1
您必须在省电计划选项中启用唤醒定时器:
Control Panel
-> Power Options
-> Change plan settings
-> Change advanced power settings
。
在列表项中Sleep
,将 更改Allow wake timers
为Enable
。
计划任务的 GUI 参数应包括:
在里面一般的标签:
- 查看
Run whether user is logged in or not
在里面状况标签:
- 查看
Wake the computer to run this task
。
如果没有Wake the computer to run this task
复选框,那么很可能是您的 BIOS 或硬件不支持唤醒计时器,这就是 Windows 不会显示该选项的原因。
如果是这样的话,我唯一的想法是,如果支持局域网唤醒,也许可以从网络上的另一台计算机进行唤醒。
答案2
如果你无法让任务计划程序为你工作,并且你的任务是从睡觉或者冬眠, 看一下待机唤醒。它是免费的,而且也许能提供您正在寻找的东西。