【问题标题】:ManagementEventWatcher for Win32_ProcessStartTrace no longer working in Win 8.1Win32_ProcessStartTrace 的 ManagementEventWatcher 在 Win 8.1 中不再工作
【发布时间】:2015-05-02 02:31:02
【问题描述】:

在过去的几个月里,我一直在使用 ManagementEventWatcher 来观察新进程的启动情况,它运行起来没有任何问题。但是,我最近再次尝试了我的应用程序,似乎不再调用新进程的事件。

这里是示例代码:

   var startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"));

还有事件:

private static void ProcessStart_EventArrived(object sender, EventArrivedEventArgs e)
{
            Console.WriteLine("AppStarted");
}

我还在另一个朋友的机器(也是 Win 8.1)上测试了这个,他有一个旧的二进制文件(过去几个月也可以正常工作),他也不再接收事件。

这个问题似乎只存在于 Win32_ProcessStartTrace,因为 Win32_ProcessStopTrace 工作得很好,并且在进程停止时接收事件。

最近是否有任何可能干扰此的 Windows 更新?我的系统环境自上次工作以来没有改变(除了 win 更新)。

【问题讨论】:

标签: c# .net wmi


【解决方案1】:

我遇到了这个问题。要修复它,您需要卸载 Windows 更新“kb3045999”。

为此:

  1. 打开 Windows 更新
  2. 点击“查看更新历史”
  3. 点击顶部的“已安装更新”
  4. 向下滚动,直到看到“Windows 安全更新 (KB3045999)
  5. 右键卸载
  6. 重启电脑

然后应该解决问题。

【讨论】:

    【解决方案2】:

    这是由 Windows 更新 kb3045999 引起的。

    在 Windows 8.1 或 Windows 中安装此安全更新后 Server 2012 R2,调用 Windows 管理的应用程序 直接检测 (WMI) API,或调用依赖于 WMI(如 ManagementEventWatcher 类)不接收 进程的正确状态(无论进程是否 运行或不运行)。

    解决方案: 要解决此问题,请安装修补程序 3094199

    2015 年 7 月 11 日更新:Microsoft 已发布修补程序。


    您可以使用命令行卸载此更新。

    wusa /uninstall /kb:3045999
    

    更多参数见WUSA - Windows Update Standalone Installer

    2015 年 8 月 23 日更新:对我来说,该解决方案不再有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-23
      • 2013-09-21
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 2015-05-09
      • 1970-01-01
      相关资源
      最近更新 更多