问题:如何查看所有打开的 ETW 会话,包括它们的根路径?我期望一些 PowerShell 命令,例如Get-EtwTraceSession,但我没有看到任何命令。
背景
我使用 EventTracing API,偶尔会发现自己因计算机上安装的内容而退出会话。
这个答案告诉我,我可以运行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
Run Code Online (Sandbox Code Playgroud)
但我正在寻找更方便的解决方案。
解决方案:通过WMI进行:
Get-WmiObject -Class MSFT_EtwTraceSession -Namespace ROOT/Microsoft/Windows/EventTracingManagement `
| sort -Property LocalFilePath `
| ft -AutoSize -Property Name,LocalFilePath
Run Code Online (Sandbox Code Playgroud)
注意:这仅有时有效(不知道什么决定何时),有时仅显示一个会话 - Circular Kernel Context Logger。当不工作时,Get-EtwTraceSession也仅显示此会话,大概是因为它在下面使用相同的 WMI 对象。
| 归档时间: |
|
| 查看次数: |
1485 次 |
| 最近记录: |