当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在另一个任务完成后运行计划任务

作者:精品下载站 日期:2024-12-14 23:29:39 浏览:14 分类:玩电脑

如何在另一个任务完成后运行计划任务


Windows 任务计划程序允许您按计划以及在事件查看器中出现特定事件时运行任务(使用 Windows 事件触发器)。在本文中,我们将向您展示如何创建一个计划任务,该任务在另一个任务成功完成后自动运行。

在我的示例中,我无法将两个任务合并为一个任务,因为在成功完成第一个脚本(任务)后,我需要以不同的用户身份运行批处理脚本。

假设您要在 Ping 作业成功完成后运行 Pong 调度程序任务。

  1. 打开任务 调度程序控制台(

    Taskschd.msc

    )并找到Ping任务;

  2. 单击底部任务栏上的历史记录选项卡。它包含与此计划任务相关的事件的完整历史记录;

    [玩转系统] 如何在另一个任务完成后运行计划任务

    如果任务计划程序仅显示历史记录(已禁用)选项卡,则需要单击右侧“操作”窗格中的启用所有任务历史记录。之后,所有任务事件将显示在“历史记录”选项卡中。

  3. 我们需要事件 ID 为 102 的事件(

    Task completed

    ) 成功完成任务后出现 (

    Task Scheduler successfully finished

    );

  4. 打开此事件的属性,转到详细信息选项卡,然后切换到该事件的XML 视图。在为新计划任务构建条件语句时,我们将使用 XML 中的以下数据:

EventID: 102
Provider-Name: Microsoft-Windows-TaskScheduler
Channel: Microsoft-Windows-TaskScheduler/Operational
TaskName: \MyTasks\Ping

[玩转系统] 如何在另一个任务完成后运行计划任务

确保为任务计划程序事件启用操作日志。打开事件查看器控制台(

eventvwr.msc

)并转到应用程序和服务日志 -> Microsoft -> Windows -> 任务计划程序 -> 操作。右键单击该项目并选择启用日志选项。

[玩转系统] 如何在另一个任务完成后运行计划任务

现在您可以创建一个Pong计划任务。

当您为 Pong 作业创建触发器时,必须指定事件 102 出现时触发作业的条件(新建触发器 -> 发生事件)。但问题是EventID 102在任何任务完成后都会出现,而不仅仅是Ping任务。

[玩转系统] 如何在另一个任务完成后运行计划任务

当标准过滤器无法帮助您足够准确地选择事件时,您可以创建更灵活的条件来选择事件(自定义)。单击新建 事件 过滤按钮。

通过指定先前从事件的 XML 视图检索的数据来创建新的过滤器。

  • 事件日志:Microsoft-Windows-TaskScheduler/Operational

  • 事件源:TaskScheduler

  • 任务类别:任务已完成

[玩转系统] 如何在另一个任务完成后运行计划任务

单击XML选项卡。它将显示过滤器的 XML 表示形式 (XPath):

<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and Task = 102]]</Select>
</Query>
</QueryList>

选中手动编辑查询选项。您需要将过滤器绑定到 \MyTasks\Ping 任务。为此,请替换 XML 过滤器中的以下行:

*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and Task = 102]]

和 :

*[EventData [@Name='TaskSuccessEvent'][Data[@Name='TaskName']='\MyTasks\Ping']]

[玩转系统] 如何在另一个任务完成后运行计划任务

在触发器(自定义事件过滤器)选项卡中保存过滤器设置并保存 Pong 任务。

现在尝试运行 Ping 任务(手动、计划或使用 PowerShell:

Start-ScheduledTask mytasks\ping

)。当 Ping 任务成功完成后,Pong 作业将立即启动。

[玩转系统] 如何在另一个任务完成后运行计划任务

XPath 格式如下所示。

[玩转系统] 如何在另一个任务完成后运行计划任务

通过这种方式,您可以设置整个任务链,以按顺序运行调度程序任务。同样,您可以在 Windows Scheduler 任务中创建任何其他依赖项。例如,如果备份作业成功完成,则运行一个脚本,如果备份失败,则需要运行一个脚本来清理或修复当前状态。

在之前的一篇文章中,我们研究了另一个脚本,它允许您在 Windows 中启动或关闭另一个程序时运行一个程序/脚本。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯