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

3
什么是不使用清单文件卸载/删除先前安装的事件源的最佳方法?
例如,如果我有以下内容:

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

为了安装事件源,我使用wevtutil {im | install-manifest}

如果我有清单文件,卸载很容易。但是如果没有清单文件,我能否卸载事件源?


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

使用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

谢谢!


你能否卸载已转储清单的提供程序? - magicandre1981
我已经投票将该问题标记为“过于宽泛”,因为我仍然不知道转储清单是否有效,以及我们如何帮助您。 - magicandre1981
我将您的帖子标记为答案,因为没有更好的。它可能有效... - Zeljko
1个回答

2
无需卸载任何东西,因为如果使用 EventSource,则不会注册清单。清单将在ManifestData事件中发送。

enter image description here

将记录的数据传输给听众工具(Perfview、Windows Performance Toolkit),以便他们能够解释它。
当您注册提供程序时,您可以转储清单,然后再次使用wevtutil将其删除。

我会更新我的问题。只是为了澄清为什么我想要删除那个事件源。 - Zeljko
perfview允许您转储已安装提供程序的清单,现在可以根据需要使用该清单。 - magicandre1981

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接