【问题标题】:WMI Querying Thread Events - No resultsWMI 查询线程事件 - 无结果
【发布时间】:2021-09-25 07:00:39
【问题描述】:

我正在调查 WMI 类:Win32_ThreadWin32_ThreadTraceWin32_ThreadStartTraceWin32_ThreadStopTrace 以了解可能的用法。

唯一返回任何数据的是 Win32_Thread。其余的不会返回任何东西,无论我如何尝试执行它(作为管理员,使用 PowerShell,使用现成的工具,使用代码)。

发生这种情况有什么具体原因吗?我的操作系统是最新的 Win 10 Pro x64。

测试工具示例:https://www.nirsoft.net/utils/simple_wmi_view.html

看到 Win32_ThreadTrace 工作会非常有趣和有用。

非常感谢任何建议/帮助。

【问题讨论】:

  • "不管我如何执行它,其余的都不返回任何东西" - 其余的是 event 类 - 它们不能被查询实例,你 @ 987654326@.
  • @MathiasR.Jessen 我明白了,那么为什么该工具无法获取通知?它似乎订阅了大多数事件。
  • 因为您使用的工具旨在浏览 WMI 实例和类/模式数据,而不是使用 WMI 事件。你想用这个来完成什么?在 PowerShell 中编写某种监控脚本?
  • 我真诚地认为该工具也是为订阅而设计的,但也许我错了,所以谢谢。我想要完成的远远超出了我的问题......但给你一个想法:我想跟踪进程 B 在进程 A 中创建的线程。我将使用代码来执行此操作,PowerShell 只是用于测试。

标签: windows wmi wmi-query


【解决方案1】:

经过调查,@Mathias 似乎是正确的,您需要“订阅”某些事件,即使“某些”网站声明您可以手动查询这些...

无论如何,对于将来遇到此问题的任何其他人,答案都在这里:

$query = "SELECT * FROM Win32_ThreadTrace"
          
Register-WmiEvent -Source Demo -Query $query -Action {
$global:myevent = $event
Write-Host 'ProcessID:' $event.SourceEventArgs.NewEvent.ProcessID
Write-Host 'ThreadID:' $event.SourceEventArgs.NewEvent.ThreadID
Write-Host 'TimeCreated:' $event.SourceEventArgs.NewEvent.TIME_CREATED }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多