当前位置:  开发笔记 > 编程语言 > 正文

不使用代码删除自定义事件日志源

如何解决《不使用代码删除自定义事件日志源》经验,为你挑选了3个好方法。

我有一个应用程序创建了许多自定义事件日志源来帮助过滤其输出.如何在不编写任何代码的情况下从机器中删除自定义源代码,因为使用System.Diagnostics.EventLog.Delete运行快速程序是不可能的.

我已经尝试使用RegEdit从[HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services\Eventlog]中删除自定义源,但是应用程序的行为就好像日志仍然存在于幕后.

我还缺少什么?



1> Mike L..:

我也认为你在正确的地方......它以事件日志的名义存储在注册表中.我有一个自定义事件日志,下面是多个事件源.

HKLM\System\CurrentControlSet\Services\Eventlog\LOGNAME\LOGSOURCE1 HKLM\System\CurrentControlSet\Services\Eventlog\LOGNAME\LOGSOURCE2

这些源有一个EventMessageFile键,它是REG_EXPAND_SZ并指向:

C:\ WINDOWS\Microsoft.NET \框架\ V2.0.50727\EventLogMessages.dll

我想如果你删除作为日志源的Key,在我的例子中是LOGSOURCE1,那应该是所有需要的.

对于它的价值,我通过.NET尝试了它,这就是它的作用.但是,看起来每个自定义事件日志都具有相同名称的源.如果您有自定义日志,则可能会影响您清除它的能力.你可能必须彻底删除日志.此外,如果您的应用程序有安装程序,我可以看到应用程序名称也可能在应用程序事件日志中注册为源.还有一个要清楚的地方.


我讨厌使用注册表,但有时这是唯一的方法.遗憾的是,你不能像EventLogs一样有效地枚举EventSources.您可以测试存在,提供名称,但不能循环使用它们.

2> Kapé..:

使用Powershell怎么样?

Remove-EventLog -LogName "Custom log name"

Remove-EventLog -Source "Custom source name"



3> Moondustt..:

我只能通过使用以下方法删除它:

[System.Diagnostics.EventLog]::Delete("WrongNamedEventLog");

在powershell中

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有