禁用阻止 Windows 日志事件

Gab*_*ras 5 c++ wmi dcom

我正在使用 WMI(Windows 管理规范)尝试从一组远程计算机收集一些信息。问题是,每次我尝试使用以下命令启动与远程计算机/资源的连接:

//IWbemLocator::ConnectServer method (wbemcli.h)
m_pLoc->ConnectServer ....
Run Code Online (Sandbox Code Playgroud)

在哪里

IWbemLocator *m_pLoc;
Run Code Online (Sandbox Code Playgroud)

(可以假设m_pLoc已正确初始化),如果远程资源不可用,Windows会在Windows事件查看器中生成日志事件:

DCOM 无法使用任何配置的协议与计算机进行通信;PID 请求......

问题是,鉴于大量远程设备在某些时候无法访问,日志会被淹没。

每次我尝试启动连接时,是否有任何方法可以控制或阻止 Windows 在事件查看器中推送事件?似乎争论:

IWbemLocator::ConnectServer method (wbemcli.h)
Run Code Online (Sandbox Code Playgroud)

CoCreateInstance用于初始化 IWbemLocator 不允许我正在寻找的这种非常自定义的配置。有什么建议或替代方案吗?谢谢你!

Pau*_*ers 2

更仔细地查看 EventViewer 中记录的消息,我可以看到这是 DCOM 的事情,并且看起来您可以通过(像往常一样)调整注册表来关闭 DCOM 错误日志记录。

你想要的关键是:

HKEY_LOCAL_MACHINE
    SOFTWARE
        Microsoft
            Ole
Run Code Online (Sandbox Code Playgroud)

然后DWORD在其中创建一个名为 的值ActivationFailureLoggingLevel并将其设置为2

从这里收集的信息。我自己还没有测试过,但看起来应该可行。