我正在尝试使用 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>