从事件中读取数据

时间:2015-10-08 14:54:17

标签: windows batch-file active-directory scheduled-tasks

我需要为Active Directory中的事件设置Windows计划任务。

我的活动的内容(我不知道如何调用)如下:

enter image description here

有没有办法在批处理文件中读取和使用此事件中的帐户名和事件ID的值,该文件将在此事件发生时启动?

1 个答案:

答案 0 :(得分:1)

使用schtasks,您可以使用/sc onevent触发批处理文件:

SCHTASKS /Create /SC ONEVENT /mo */EventData/Data[@Name='SubjectUserName']='reduser' /EC Security /tn check_event /tr "c:\some.bat" 

其中/mo ..是您要通过过滤器的元素的xpath。在这种情况下与用户reduser相关(因为这是屏幕截图中不是隐藏的信息)

with

wevtutil qe Security wevtutil qe security /q:*/EventData/Data[@Name='SubjectUserName']='reduser'

您将在安全性中列出与reduser相关的事件,最后一行将是最后一个事件。您可以通过在xpath filer中添加系统时间来获得额外的过滤 - 格式始终是{{ 1}} - 或通过findstr管道。要获得与设置无关的所需时间格式,您可以检查this

虽然用纯批处理解析xml行并得到你想要的东西有点麻烦 - 行太长了你可能需要两个嵌入式for循环来解析数据。她的e我使用wevtutil记录了事件数据,以获取有关已启动过程的信息,因此我想您可以将其用作参考。