卸载没有清单文件的事件源(ETW)吗?

时间:2019-03-20 13:44:00

标签: c# etw eventsource etw-eventsource

在不使用清单的情况下卸载/删除以前安装的事件源的最佳方法是什么?

例如。 如果我有类似的东西:


    [EventSource(Name = "Corporation-Module-X")]
    public sealed class XEventSource : EventSource
    {
        //...
    }

对于安装事件源,我使用的是 wevtutil {im | install-manifest}

如果我有清单,则卸载很容易。但是我可以在没有清单文件的情况下卸载事件源吗?


我将尝试阐明事件源的使用方式以及为什么要将其删除。

使用wevtutil安装事件源后,事件源将作为事件跟踪提供程序可见。因此,我可以在Performance Monitor中创建新的Data Collector Set,在其中添加事件源(以及一些性能计数器)。 看起来像这样:

ETW EventSource in new collector set

可能发生的是事件源被重命名或删除了。 例如。重命名并使用wevtutil安装后。


    [EventSource(Name = "Corporation-Module-Y")]
    public sealed class XEventSource : EventSource
    {
        //...
    }

事件跟踪提供程序中仍然存在旧的

ETW New event source

我想查询所有以 Corporation * 开头的已安装事件提供程序,并在安装新事件提供程序之前将其删除。

enter image description here

谢谢!

1 个答案:

答案 0 :(得分:1)

不需要卸载任何内容,因为如果您EventSource,清单未注册。清单发送ManifestData Event

enter image description here

到侦听器工具(Perfview,Windows Performance Toolkit),以便他们可以解释记录的数据。

注册提供商后,您可以dump the manifest并再次使用wevtutil将其删除。