为什么当我删除此自定义事件日志时应用程序事件日志会被清除

为什么当我删除此自定义事件日志时应用程序事件日志会被清除

我正在使用 powershell cmdlet 创建新的事件日志、注册源并记录事件。我遇到了一些意外行为。我通过发出以下命令创建了一个具有任意名称的新日志:

New-EventLog -LogName SchedulerWakeUpTask -Source devops

我已在事件查看器中验证它已出现在“应用程序和服务日志”目录中。然后我创建了一个事件

Write-EventLog -LogName SchedulerWakeUpTask -Source devops -EventId 1000 -Message "All good."

但事件没有记录在正确的日志中,而是记录在应用程序日志中。它类似于这个问题。在日志属性中,我已验证我的自定义日志已分配了具有路径的特定单独日志文件%SystemRoot%\System32\Winevt\Logs\SchedulerWakeUpTask.evtx。检查后,我通过发出命令删除了日志

Remove-EventLog -LogName SchedulerWakeUpTask

此后,空日志从事件查看器中消失,但整个应用程序日志也被清除干净。为什么?

看到已经出现的破坏,我决定再测试一下。测试结果如下:

  • 源名称不重要
  • 每次我再次创建并删除具有此特定名称的自定义日志时,应用程序事件日志都会被清除
  • 如果此自定义日志不存在,则当我尝试删除它时,应用程序事件日志不会被清除
  • 当我创建另一个自定义事件日志并随意命名为 SchedulerWakeUpTask2、SchedulerWakeUpTas、SchedulerWakes、kapusta 或其他名称时,应用程序事件日志不会被清除;
  • 当我仅删除与自定义日志关联的源时,应用程序事件日志不会被清除
  • 当再次创建自定义日志并发出事件时,该事件再次仅在事件日志Write-EventLog中可见Application
  • 这不是事件查看器的视觉故障,Get-EventLog -LogName Application它显示No match指定的事件文件已被截断(如果我没记错的话,它曾经超过 100MB,但现在它的大小只有 70kB)

相关内容