从事件中读取数据

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

我的事件的内容(我不知道如何叫)是这样的:

在这里输入图像描述

有没有办法在batch file中读取和使用这个事件中的帐户名和事件ID的值,这个batch file将在这个事件发生时开始?

用schtasks你可以用/sc onevent触发一个批处理文件:

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

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

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

你会列出与reduser相关的安全事件,最后一行将是最后一个事件。你可以通过在xpath filer中添加系统时间来获得额外的过滤 – 格式永远是YYYY-MM-DDThh:mm:ss.msZ – 或通过findstr管道。 为了获得所需的时间格式独立的设置,你可以检查这个 。

虽然用纯批量解析xml行有点麻烦,并且得到你想要的东西 – 行太长,你可能需要两个嵌入的for循环来解析数据。 她的电子邮件我已经与wevtutil事件日志数据获取有关启动过程的信息,所以我想你可以使用它作为参考。