取消/阻止由Windows“任务调度程序”延迟触发的任务
这与特定问题有关,但我认为这是一个普遍使用的“有趣”问题:在
Windows(特别是2k8服务器,对我来说)中,您有一个由事件触发的任务(具体来说,UPS继续使用电池)因为电源故障)延迟(电池将持续至少15分钟)然后执行一些动作(具体地,关机/秒/ t 60 / d U:6:12).但是还有一些其他事件(具体来说,UPS由于电源已经恢复而关闭电池),然后应该阻止第一个任务发生(具体而言,不要关闭),如果它在延迟期间发生的话.
我开始考虑这个问题,因为我的UPS附带的用于管理服务器关机的软件是纯粹的…哦,我应该礼貌,不是吗? ……嗯……非常不好所以我在考虑如何在没有电池耗尽功能之前提供标准关机.通常情况下,系统会从UPS收到一条消息,说明电池即将耗尽,然后关闭.此UPS不发送该消息.它发送“我正在使用电池”,“我正在使用AC”等等.是.它.没有关于“我即将死去”的消息. 但我认为这对其他情况也是一个有用的技巧.任何时候有事情你想要做的事情发生了一段时间没有恢复.例如.如果您在一段时间内无法与远程PC通信,请向智能电源板发送消息以重新启动它……但如果通信已恢复则不会.或者,如果您在一段时间内无法从一个源获取数据,请切换到备份数据源……但如果主源开始响应则不会. 可以吗?我没有看到方法……
使用2个任务扩展Ryan的方法,一个由“Power Gone”触发,一个“中止”按钮任务,由“Power Restore”事件触发
如果你需要做一些更通用的事情(不是每个可执行文件都有像关机一样的中止开关),并且想要在开始向管理层发送电子邮件,擦除磁盘或自毁数据中心(或其他任何内容)之前保持几分钟的缓冲区你想在紧急情况下自动化),你可以让第一个停止/等待一段时间,让第二个任务在触发时停止第一个任务: PowerGone任务: Send-MailMessage -To "james@company.tld" -Body "Self-destruction sequence initiated,T-10m" # We can still abort this task Start-Sleep -Seconds 600 Send-MailMessage -To "everyone@company.tld" -Subject "Notice of termination..." Start-Implosion -Force PowerBack任务: $TaskScheduler = New-Object -ComObject Schedule.Service $TaskScheduler.Connect("localhost") $TargetTask = $TaskScheduler.GetFolder('').GetTask('PowerGone') $TargetTask.Stop() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- wix – 如何根据条件运行自定义操作?
- windows – PATH_NOT_FOUND和NAME_NOT_FOUND之间的区别是什
- 无法修改表(使用microsoft sql server management studio 2
- 使用Windows.Data.Json的C#VS2017 IStringable Unreference
- 无法在Windows 7上安装浏览器同步
- windows – 在git中更改分支会导致修改文件
- windows-server-2008 – 在HYPER-V盒子上运行一台虚拟机有意
- .net – Windows窗体的Visual Studio单元测试
- windows-7 – 是否有批量配置Windows设置的程序?
- ide – 在Windows上编程ML的编辑器?