这是我的批处理文件的一部分。我需要从Windows事件日志中查询系统事件33和34,如果它以100全双工或100半双工运行,则全部是关于NIC速度的。从事件日志XML获得查询。如果我运行命令来查询所有事件(Anytime),我得到了这么多结果,我所需要的只是结果最后一行的最新结果。
查询过去7天是一个更好的选择,因为它只给我1个结果(从GUI确认),如果我需要对许多远程PC运行查询,它会更快。但是从命令运行我得到"在位置2发生语法错误。无法打开事件查询。指定的查询无效。"
我想知道从eventvwr生成的查询是否有问题,或者我是否需要在此查询中转义一些特殊字符?
我的第二个选择是只使用Anytime查询并将最后一行写入文件。这部分我不知道如何批量创建。
任何时间:
wevtutil /r:%1 qe System "/q:*[System[Provider[@Name='e1kexpress'] and (Level=4 or Level=0) and (EventID=33 or EventID=34)]]"
过去7天
wevtutil /r:%1 qe System "/q:*System[Provider[@Name='e1kexpress'] and (Level=4 or Level=0) and (EventID=33 or EventID=34) and TimeCreated[timediff(@SystemTime) <= 604800000]]]"
答案 0 :(得分:0)
你的第二个命令有两个问题(下面代码中的更正部分)
wevtutil /r:%1 qe System "/q:*[System[
Here is the first problem.....^
你错过了一个角色
TimeCreated[timediff(@SystemTime) <= 604800000]]]"
Here is the second problem........^
运营商为<=
,而不是<=
答案 1 :(得分:0)
可以预期XML字符串具有编码为XML实体的某些字符。 &LT;和&gt;保留用于XML标记。
命令行实用程序不需要执行该转换。