当进程终止时,任务计划程序触发任务

当进程终止时,任务计划程序触发任务

我正在尝试使用 Windows 10 任务计划程序创建一个在特定进程终止时触发的任务。

我的第一步是Audit process tracking在组策略编辑器 ( Windows Settings > Security Settings > Local Policies > Audit Policy) 中启用。这将启用进程启动或停止时的事件日志记录。Windows 中的终止(停止)事件 ID 是4689(关联)。我现在可以在事件日志中看到进程终止的时间,包括我想要触发任务的特定进程。

接下来,我尝试在任务计划程序中创建一个任务,该任务将在此特定进程终止时执行。我想要监视的特定应用程序进程名称是C:\Program Files\path\to\my\application.exe

我为其创建了一个自定义事件过滤器并使用了以下 XML:

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
      *[System[(EventID="4689")]] and *[EventData[Data[@Name="ProcessName"]="C:\Program Files\path\to\my\application.exe"]]
    </Select>
  </Query>
</QueryList>

但这似乎行不通。我不确定我的语法哪里错了。我没有收到任何错误或任何东西。我的任务根本就没有被触发。

答案1

我也正在为同样的问题而苦恼,这真是令人抓狂。事件过滤器在进程创建(任务 = 13312,事件 ID=4688)时触发,但在终止时不触发...

设置与 OP 相同,我还在事件查看器中看到了创建和终止事件,创建了一个任务以在进程终止时触发 .bat(任务 = 13313,事件 ID=4689),但事件不会触发它。当我手动运行任务时,它当然可以工作。过滤器如下:

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
     *[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 13313 and (band(Keywords,9007199254740992)) and (EventID=4689)]]
   and 
     *[EventData[Data[@Name='NewProcessName'] and (Data='C:\Program Files\AppName.exe')]]
    </Select>
  </Query>
</QueryList>

我在这里遗漏了什么???

编辑:啊哈!我错过了。现在它在终止时触发。

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
     *[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and (band(Keywords,9007199254740992)) and (EventID=4689)]]
   and 
     *[EventData[(Data='C:\Program Files\AppName.exe')]]
    </Select>
  </Query>
</QueryList>

相关内容