EventCreate.exe创建一个“CustomSource”值,这是什么意思?

时间:2018-01-16 19:09:33

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

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

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

image

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

我无法在MSDN上或在线其他地方找到有关CustomSource的具体内容的任何文档。我的机器上没有注册的资源使用它。

有谁知道CustomSource的含义及其运作方式?它只是EventCreate.exe内部的东西,还是Windows事件日志实际上用它来做什么?

1 个答案:

答案 0 :(得分:2)

感谢@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将与该源一起使用。