【问题标题】:EventCreate.exe creates a "CustomSource" value, what does it mean?EventCreate.exe 创建一个“CustomSource”值,这是什么意思?
【发布时间】:2018-01-16 19:09:33
【问题描述】:

命令行EventCreate.exe 工具在注册表中注册一个用户定义的事件源供 Windows 事件日志查看器使用,如下所示:

eventcreate /t INFORMATION /ID 100 /L "Application" /SO [SourceName] /D "Description"

我编写了一个应用程序,它有自己的事件日志资源字符串并注册为事件源per MSDN,但它不使用CustomSource 值并且工作正常。

我在 MSDN 或其他在线网站上找不到任何关于 CustomSource 的确切含义的文档。我机器上的注册源都没有使用它。

有谁知道CustomSource 的用途以及它是如何工作的?它只是 EventCreate.exe 内部的东西,还是 Windows 事件日志实际上使用它?

【问题讨论】:

  • 我在 system32 和子文件夹中搜索 - 只有 EVENTCREATE.EXEMSI.DLL 包含字符串 CustomSource(看起来像 msi.dll 无关这里)。基于此,我们可以猜测这是 EventCreate.exe 内部的更快 - 否则某些其他系统二进制文件必须包含此字符串才能查询此值(不认为它包含编码形式)。
  • 它肯定只是 EventCreate.exe 内部的

标签: winapi event-log eventlog-source custom-eventlog


【解决方案1】:

感谢@RbMm 指出这篇博文:

EventCreate and "ERROR: Source parameter is used to identify custom applications/scripts only"

无论出于何种原因,EventCreate 仅用于记录与 EventCreate 创建的事件日志源相关联的事件。它通过在创建新源时在源的注册表项中添加一个名为 CustomSource 的 REG_DWORD 值来实现此目的,并检查该值是否存在已存在的源。所以在上面的例子中,如果应用程序日志中不存在“MyStuff”源,上面的命令会创建它并使用CustomSource 值配置它的键。在验证 CustomSource 值的存在后,使用相同源对 EventCreate 的后续调用将成功。但是,如果“MyStuff”源是通过另一种未创建 CustomSource 标志的机制创建的,例如使用 PowerShell New-EventLog cmdlet,那么您会收到错误消息。如果您在事件源的键中创建 CustomSource 值,则 EventCreate 将使用该源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 2021-02-11
    • 2011-04-11
    • 2018-10-29
    • 1970-01-01
    • 2017-05-25
    相关资源
    最近更新 更多