如何删除 Windows 事件日志?

如何删除 Windows 事件日志?

在对写入事件日志的 C# 程序进行一些测试期间,我意外地在名为“mysb”的事件日志而不是“应用程序”事件日志中创建了一个事件源“mysb”。

现在我想摆脱错误创建的事件源,但由于它与事件日志同名,所以无法删除。

有什么办法可以消除源和事件日志 mysb?

看起来名称有点不同(我根据 C# 中的调用方式取了这些名称):源是“.Net 运行时”、“应用程序错误”、“组策略文件”... 而协议是“应用程序”、“安全”...

答案1

您可以使用 PowerShell 命令删除事件日志. 根据描述在 Microsoft 文档上:

Remove-EventLog cmdlet 从本地或远程计算机中删除事件日志文件,并取消注册日志的所有事件源。您还可以使用此 cmdlet 取消注册事件源而不删除任何事件日志。

(重点是我的)

从本地计算机删除事件日志的语法是:

Remove-EventLog -LogName "MyLog"

笔记:您必须从提升的命令提示符运行此程序。

答案2

正如 @memory-of-a-dream 在评论中注意到的那样,如果日志文件不存在,Remove-EventLog则会出错并且无法删除该日志。

在这种情况下,有两个选择:

选项1

  1. 在日志所在的路径上创建一个空文件。该路径可以在 中找到eventvwr.msc。在有问题的日志上单击右键,选择“属性”
  2. 重新启动 Eventlog 服务。如果无法重新启动,请重新启动系统
  3. 使用 删除日志Remove-EventLog。这次成功了

选项 2

删除描述损坏日志的注册表项:

reg delete "HKLM\SYSTEM\CurrentControlSet\Services\EventLog\<Bad Log Name>"

相关内容