如何列出所有活动ETW会话及其输出位置(可能在Powershell中)?

如何列出所有活动ETW会话及其输出位置(可能在Powershell中)?,etw,Etw,问题:如何查看所有打开的ETW会话,包括其根路径?我希望有一些像PowerShell这样的命令,但我没有看到 背景 我使用EventTracing API,偶尔会发现自己因为机器上安装的东西而退出会话 告诉我可以运行logman-ets查看会话列表,然后运行logman stop-ets停止一些会话。这很好,但是我怎么知道一个命名神秘的会话是什么呢 我可以繁琐地查询各个会话,并从它们的根路径中获得线索: > logman -ets SensorFramework-{c4eaa67d-dd9

问题:如何查看所有打开的ETW会话,包括其根路径?我希望有一些像PowerShell这样的命令,但我没有看到

背景

我使用EventTracing API,偶尔会发现自己因为机器上安装的东西而退出会话

告诉我可以运行
logman-ets
查看会话列表,然后运行
logman stop-ets
停止一些会话。这很好,但是我怎么知道一个命名神秘的会话是什么呢

我可以繁琐地查询各个会话,并从它们的根路径中获得线索:

> logman -ets SensorFramework-{c4eaa67d-dd9a-4fce-0002-000000000000}
(...)
Root Path:            C:\windows\CCM\SensorFramework  <<<< Aha! CCM = System Center Configuration Manager
>logman-ets传感器框架{c4eaa67d-dd9a-4fce-0002-000000000000}
(...)

根路径:C:\windows\CCM\SensorFramework解决方案:通过WMI执行:

Get-WmiObject -Class MSFT_EtwTraceSession -Namespace ROOT/Microsoft/Windows/EventTracingManagement `
| sort -Property LocalFilePath `
| ft -AutoSize -Property Name,LocalFilePath

注意:这只在某些时候起作用(不知道什么决定什么时候),有时只显示一个会话-
循环内核上下文记录器
。当不工作时,
Get-EtwTraceSession
也只显示此会话,可能是因为它下面使用了相同的WMI对象。

您交叉链接的答案中提到了这一点。我提到过类似于
Get-EtwTraceSession
,但没有一个会生成列表。