ColinOL

A Small Website

用户工具

站点工具


wiki:windows:windows-run-app-then-do-sth

如何实现启动程序A的时候执行相应的计划任务?

想实现在启动程序A的时候,自动执行计划任务,首先肯定的是可以使用Windows 任务计划程序,但是任务计划程序的事件有一定限制,事件查看器中存在的事件才可以。因此,需要首先开启相关日志记录,然后再通过事件形式,添加监视启动程序A的计划任务。

开启相关日志记录

右键点击开始按钮>运行>secpol.msc

在打开的本地安全策略中依次展开本地策略>审核策略>双击打开右侧的“审核进程跟踪”,勾选“审核这些操作”下方的“成功”>确定

打开审核进程跟踪

设置完成后可以随便打开一个应用程序再关闭,然后右键点击开始按钮>事件查看器>Windows日志>安全>可以看到最新一条的事件记录(4688)可以成功记录到刚才启动的程序的事件.

启动程序安全事件

设定任务计划程序

接下来回到任务计划程序中,修改计划任务的触发器,使用“发生事件时”触发>自定义>新建事件筛选器,切换至“XML”标签页,勾选“手动编辑查询”,粘贴下面内容:

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
        *[System[band(Keywords,9007199254740992) and (EventID=4688)]] 
        and 
        *[EventData[Data[@Name='NewProcessName'] and (Data='C:\Program Portable\TotalCMD64\Totalcmd64.exe')]]
        and
        *[EventData[Data[@Name='ParentProcessName'] and (Data='C:\Windows\explorer.exe')]]
    </Select>
  </Query>
</QueryList>

注:请将上面代码中 @Name='NewProcessName' and Data=''中的路径内容替换为程序A的完整路径

PS. 其他资料中,只筛选 @Name='NewProcessName' 相关,但当从该进程启动的其他进程,事件也会重复触发。因此加入 @ParentProssessName Data='C:\Windows\explorer.exe',测试有效。

编辑任务计划事件筛选器

然后再继续配置“创建任务”窗口中的“操作”内容.

注意,使用笔记本创建任务计划,请确认是否勾选“只有在计算机使用交流电源时才启动该任务”。

参考

wiki/windows/windows-run-app-then-do-sth.txt · 最后更改: 2020/05/19 23:14 由 colin