16 scheduled-task windows-server-2012
我想安排一次服务器重新启动,例如在清晨完成安装更新。如何从 Windows 2012 的命令行执行此操作?
在 Windows 2008 上,我会使用at
命令,
at 2am shutdown -r -f -c "restart"
Run Code Online (Sandbox Code Playgroud)
并休息了整个下午。
但是在 Windows 2012 上,运行这个命令告诉我
The AT command has been deprecated. Please use schtasks.exe instead.
Run Code Online (Sandbox Code Playgroud)
所以 schtasks.exe 的等效命令可能是
schtasks /create /sc once /tn restart /tr "shutdown - r -f ""restart""" /st 02:00
Run Code Online (Sandbox Code Playgroud)
除了非常容易忘记之外,这个命令还有另一个重要的缺点:它把任务安排在今天凌晨 2 点——除非我在凌晨 1 点醒来运行它,否则没什么用。
根据 schtasks.exe 的帮助,/sd
设置开始日期的开关不适用于/sc once
. 因此,即使我想以 mm/dd/yyyy 格式输入明天的日期——但我不想——我也做不到。
我找到的唯一可能的解决方案是在这里,Kevin Traas 建议在午夜之前创建批处理文件以创建计划任务,等待几分钟,然后创建另一个计划任务来运行您实际想要运行的命令。聪明,但远不如at
.
Eam*_*nne 15
该shutdown
命令本身有一个延迟参数/t
,可将关闭延迟数秒至 10 年。如果您想在 14 小时内安排关机,例如,您可以运行
shutdown /r /t 50400
Run Code Online (Sandbox Code Playgroud)
您还可以添加带有/d
参数的原因或带有/c
;的注释。运行shutdown /?
以获取详细信息。
尽管有文档,但该/SD
参数似乎与/SC ONCE
. 任务已成功创建,可在提供的日期和时间运行。(在 W8 和 W7 上测试)
此外,XP 文档schtasks.exe
甚至说/SD
使用时需要参数/SC ONCE
,所以我想有相当数量的脚本使用组合。
例子:
C:\Users\Mitch>schtasks /create /sc once /tn restart /tr "shutdown -r -f ""restart""" /st 23:00 /sd 2013-06-13
SUCCESS: The scheduled task "restart" has successfully been created.
C:\Users\Mitch>
Run Code Online (Sandbox Code Playgroud)
如果与文档背道而驰,请考虑直接生成 XML 文件(架构在此处),这绝对受支持,并且绝对支持计划在未来某个日期运行一次的任务。获取正确文件的一种简单方法是在任务计划程序mmc
管理单元中创建它并使用导出命令。
例子:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2013-06-12T21:20:51.004181</Date>
<Author>FOOBAR\Mitch</Author>
</RegistrationInfo>
<Triggers>
<TimeTrigger>
<StartBoundary>2013-06-13T22:20:29</StartBoundary>
<Enabled>true</Enabled>
</TimeTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>FOOBAR\Mitch</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<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">
<Exec>
<Command>Your command here</Command>
</Exec>
</Actions>
</Task>
Run Code Online (Sandbox Code Playgroud)
导入命令:
schtasks /CREATE /TN "Task Name" /XML filename.xml
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
74525 次 |
最近记录: |