问题标签 [wevtutil]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
604 浏览

windows - WEVTUtil 从源过滤

我一直在尝试从 WEVTUtil 过滤应用程序日志以查看特定日志。但是,在过滤事件 id 1036 时,有两个独立的发布者。我希望能够从 MsiInstaller 中获取事件,但我一生都无法弄清楚如何去做,而且我似乎找不到任何东西。

这对我有用,但它并没有单独显示来自 MsiInstaller 的事件。我该怎么办。

0 投票
0 回答
50 浏览

bash - 将 wevtutil 的结果传递给 git bash 中的变量或数组

目标:正如标题所示,我需要将函数的结果传递给变量。具体来说,LASTLOG() { wevtutil qe "$WINLOG" //c:1 //rd:.ture //f:text } 这个主要命令是wevtutil qe "$WINLOG" //c:1 //rd:.ture //f:text.

问题:最初我做了以下事情LASTLOG=$(wevtutil qe "$WINLOG" //c:1 //rd:.ture //f:text),但我被告知将 cmds 传递给变量不是最佳实践,所以我创建了一个函数。LASTLOG() { wevtutil qe "$WINLOG" //c:1 //rd:.ture //f:text }--但是我似乎无法将函数的输出传递给变量以供以后比较。

0 投票
0 回答
27 浏览

cmd - wevtutil 匹配带有 ' 的字符串导致错误

我在运行此命令时遇到问题,因为我正在搜索的日志文件的字符串 DATA 中有 2 个“”。

wevtutil /r:hostname qe "Veeam Backup" /c:1 /f:text /rd:true /q:"*[EventData/Data=' search string here '] and *[System[(EventID=190)]] "

这是我试图在日志查看器中匹配的文本,完全如下所示:

备份作业“ServerName”已成功完成。所有虚拟机均已成功备份。

我遇到的问题是ServerName周围的 ' '正在抛出我正在运行的 wevtutil 命令中的 ' ' 并导致语法无效。

我该如何解决这个问题?

0 投票
0 回答
143 浏览

c++ - 如何在 C++ 中获得与“wevtutil qe Application”相同的行为?

我想将 WindowsApplication事件日志导出到 XML 文件。

过去我问我如何以编程方式(C++)将事件日志文件保存为 CSV?没有成功。

今天我尝试了 EvtArchiveExportedLog 失败并显示 ERROR_DIRECTORY没有成功:我得到错误ERROR_FILE_NOT_FOUND而不是ERROR_DIRECTORY我不知道如何

授予调用线程访问权限

正如答案中所建议的那样https://stackoverflow.com/a/5110631/

命令行wevtutil qe Application > Application.xml完全符合我的需要,我希望使用 C++ 代码获得相同的行为(除了system("wevtutil qe Application > Application.xml");)。

遍历所有事件似乎表现不佳https://serverfault.com/a/353439/44612

0 投票
1 回答
36 浏览

cmd - 按用户名而不是 sid 过滤日志

我想过滤特定用户名的一些日志。在事件查看器中,您可以在提到的字段中输入用户名,它将过滤您的日志。但我想使用 cmd ( wevtutil ),所以我应该使用 xml 查询来过滤我的日志。但是问题出现在这里。在 xml 查询中,您只能输入您要查找的用户的 sid(在 system[security[@Userid]]] 中)。是否有可能以某种方式使用用户名而不是 sid?

1 2

注意:在事件查看器中,当您输入用户名时,它会将用户名转换为 sid 并在其 xml 查询中使用 sid。我不知道它是如何发生的。

我应该在这里提一下:有些人建议我使用“目标用户名”来过滤我的日志。但这不是我要找的。“目标用户名”仅处理登录日志。

0 投票
0 回答
49 浏览

windows - Windows 事件跟踪 (ETW) 增加会话缓冲区大小

我正在使用 ETW 来跟踪我正在开发的一些自定义应用程序(用 C++ 编写)的事件。提供者是基于清单的提供者。在一些测试会话期间,我看到一些事件丢失了,调试时,我发现 EventWrite 方法返回错误 ERROR_MORE_DATA ,如Windows Doc Page中定义的那样意味着

会话缓冲区大小对于事件来说太小了

查看此页面似乎可以定义bufferSize属性。使用这些信息,我更新了清单:

旧清单

新清单

两个版本之间的区别在于,在 NEW MANIFEST 中我添加了以下元素:

channel="c1"并在该行中 添加了属性<event keywords="Informative" value="4"...

不幸的是,我仍然继续遇到同样的错误。

这里的问题:

  1. 这种改变有意义吗?这是面对这个问题的正确方法吗?我有一些疑问,因为在这个文档页面中有一条注释说:

[!Note] 无论缓冲区大小如何,ETW 都无法收集大于 64KB 的事件。

  1. 使用命令正确编译清单mc.exe -um OfflineProviders.man并生成几个文件;但是当我尝试使用注册清单时,出现wevtutil.exe im OfflineProviders.man以下错误

通道属性 BufferSize 的值包含无效值。参数不正确。

为什么我会收到此错误?该错误是否解释了为什么我仍然会继续丢失事件?