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

问题描述 投票:1回答:1

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

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


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

对于安装事件源我使用的是wevtutil {im |安装舱单}

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


我将尝试澄清我如何使用事件源以及为什么我要删除它。

使用wevtutil安装事件源后,事件源作为事件跟踪提供程序可见。所以我可以在性能监视器中创建新的数据收集器集,我将添加我的事件源(以及一些性能计数器)。它看起来像这样:

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

谢谢!

c# etw eventsource etw-eventsource
1个回答
1
投票

没有必要卸载任何东西,因为如果你EventSource没有注册清单。清单发送给ManifestData Event

enter image description here

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

当您注册提供程序时,您可以使用dump the manifest并再次使用wevtutil将其删除。

© www.soinside.com 2019 - 2024. All rights reserved.