【问题标题】:How do I list all active ETW sessions with their output locations, maybe in Powershell?如何列出所有活动的 ETW 会话及其输出位置,可能在 Powershell 中?
【发布时间】:2020-05-18 07:35:45
【问题描述】:

问题:如何查看所有打开的 ETW 会话,包括它们的根路径?我希望有一些类似Get-EtwTraceSession 的 PowerShell 命令,但我没有看到任何命令。

背景

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

This answer 告诉我我可以运行logman -ets 来查看会话列表,然后运行logman stop <SessionName> -ets 来停止一些会话。这很好,但我怎么知道什么是隐秘命名的会话?

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

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

但我正在寻找更方便的解决方案。

【问题讨论】:

标签: etw


【解决方案1】:

解决方案:通过 WMI 进行:

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

注意:这只有时有效(不知道什么决定了何时),有时只显示一个会话 - Circular Kernel Context Logger。当不工作时,Get-EtwTraceSession 也只显示这个会话,大概是因为它使用了相同的 WMI 对象。

【讨论】:

    猜你喜欢
    • 2018-01-24
    • 2010-12-01
    • 2023-03-21
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多