c# - 如何解决 WMI 请求的 "Provider load failure"?

标签 c# .net wmi

我正在使用 WMI 收集系统信息。它在我测试过的每个系统上都运行良好,但我有一个或两个用户报告了问题。调试日志显示 WMI 代码抛出“提供程序加载失败”异常。我无法重现该问题。

用户已验证 WMI 服务正在自动模式下运行。

异常(exception)情况:

System.Management.ManagementException: Provider load failure 
   at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
   at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()

关于如何排查和解决此问题有什么想法吗?

最佳答案

可能追踪问题根本原因的一种方法是使用 WBEMTest MS Scripting Guys 所说的工具是最简单的方法之一

"To find the provider of a WMI class..."

脚本专家:Use PowerShell to Troubleshoot “Provider Load Failure”

Win32_network adapter "provider load failure" 中描述了特定于 Win32_NetworkAdapter 的高级步骤Mark Wolzak 在 infoSupport 上发帖。

  • 点击开始 >> 运行 >> wbemtest
  • 单击“连接...”连接到命名空间
  • 执行查询 'Select * From MSFT_WmiSelfEvent'
  • 向下滚动到底部并跟踪以下 WMI 事件
  • 查看导致问题的 dll 的任何 Msft_WmiProvider_InitializationOperationFailureEvent 或 Msft_WmiProvider_LoadOperationFailureEvent 的详细信息

感谢 WMI–Provider Load Failure在 Richard Siddaway 的博客上发帖,向我介绍此工具和具体方法。

关于c# - 如何解决 WMI 请求的 "Provider load failure"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7403164/

相关文章:

c# - 如何使用 PostSharp 修改方法参数?

wcf - 如果启用了 wmi,WCF 会在哪里记录这些内容?

powershell - 在Powershell中获取USB设备实例路径

c# - 使用 yield 时在 try/catch 中包装对迭代器的调用

c# - knockout 绑定(bind)第二次不起作用

c# - 当我在 C# 中使用今天的日期时,为什么时间会变成 0000

c# - 使用 SocketAsyncEventArgs 按顺序发送数据

c# - 拳击内存问题

wmi - 如何删除已发布的 wmi 架构?

c# - 对象引用未设置为对象的实例 asp.net c#