如何在“工作站解锁”上启动 Windows 任务并添加 2 个或更多触发器?

如何在“工作站解锁”上启动 Windows 任务并添加 2 个或更多触发器?

我正在使用 Windows 7,我想使用名为“SchTasks”的任务计划程序命令行模式实用程序根据我的选项创建计划任务。

但是使用 Schtasks 存在一些问题:

  1. 有没有办法添加“工作站解锁”触发器?
  2. 有没有办法添加两个或更多触发器?

我希望在命令行上拥有所有选项,就像使用 GUL 任务计划程序应用程序时一样。

答案1

选项1

事件 ID 4801对应于工作站已解锁。您可以打开此事件的日志记录,正如我在回答中解释的那样这里

现在您可以使用调度任务如下创建该事件触发的任务:

schtasks /Create /RU "Username" /SC ONEVENT /MO "*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and EventID=4801]]" /EC Security /TN "Taskname" /TR "Drive:\path to\program.exe" /F

在这里我使用了/欧共体参数来定义事件通道(在这种情况下安全日志)。或者修改器参数用于指定匹配我们感兴趣的事件所需的 XPath 过滤器。


但是你可能会说你可以使用工作站解锁触发器,而无需打开事件日志记录,当然您是正确的。任务可用的触发器如下:

1

我用绿色标记的那些可以使用 schtasks 指定/SC范围:

/SC   schedule     Specifies the schedule frequency.
                   Valid schedule types: MINUTE, HOURLY, DAILY, WEEKLY,
                   MONTHLY, ONCE, ONLOGON, ONSTART, ONIDLE, ONEVENT.

我用红色标记的那些似乎没有相应的 schtasks 选项。可能是一种使用此类触发器创建任务的模糊方法,但至今我还没有找到它,并且倾向于认为这是不可能的(缺乏关于 schtasks 参数的易于理解但详细的文档也没有帮助)。

那里当然是一个解决方法,这将引导我们(请击鼓)...

选项 2

只需使用任务计划程序 UI 创建具有所需触发器(如果需要,可以创建多个)的任务并将其导出为 XML。现在,您当然可以根据需要导入 XML 并完美地重新创建任务:

schtasks /Create /TN "Taskname" /XML "ExportedTask.xml"

答案2

以下代码无需打开解锁事件的审核,即可按原样运行。

schtasks /Create /SC ONEVENT /MO "*[System[(EventID=4624)]] and  *[EventData[Data[9]="7"]]" /EC Security /TN "PF9I" /TR "\"C:\Program Files\Five9PlantronicsInterface\MyApps.bat"\" /F

秘诀在于,Data[9] 对应于属性 LogonType,而值 7 对应于解锁事件。

答案3

对我来说,有效的方法是根据这篇文章 使用如下EventID 42和参数:/EC System将电源事件(睡眠和唤醒)记录到事件日志中 在 Microsoft 社区。

因此,以下方法schtasks对我来说非常有效:

schtasks /create /sc onevent /mo "*[System[(EventID=42)]]" /EC System /tn task1 /tr "batchfile.bat"

相关内容