c# - 系统管理管理异常

标签 c# .net system.management

我正在运行以下代码:

System.Management.ManagementClass wmiNetAdapterConfiguration = new System.Management.ManagementClass("Win32_NetworkAdapterConfiguration");
System.Management.ManagementObjectCollection wmiNetAdapters = wmiNetAdapterConfiguration.GetInstances();
Log.logInfo("Net adapters:" + wmiNetAdapters.get_Count());

在某些机器上没问题,但在某些机器上出现以下错误:

System.Management.ManagementException: Not found

调用堆栈:

System.Management.ManagementException: Not found 
   at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
   at System.Management.ManagementScope.InitializeGuts(Object o)
   at System.Management.ManagementScope.Initialize()
   at System.Management.ManagementObject.Initialize(Boolean getObject)
   at System.Management.ManagementClass.GetInstances(EnumerationOptions options)
   at System.Management.ManagementClass.GetInstances()

知道为什么吗?

最佳答案

System.Management namespace 提供的功能取决于 WMI (Windows Management Instrumentation)服务。

我怀疑 WMI 服务尚未在抛出该异常的系统上启动。

出于故障排除的目的,您可以使用管理工具 → 服务实用程序进行验证。

如果事实证明是这种情况,您可以将代码包装在 try-catch block 中并使用 ServiceController class启动和停止相应的服务。

关于c# - 系统管理管理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5247659/

相关文章:

.net - .NET Entity Framework 中存在哪些设计模式?

c# - 同步功能

c# - SettingsManager.GetWritableSettingsStore 可用于在 Visual Studio 扩展中导入/导出?

c# - 装箱和拆箱的幕后花絮

.net - c# 中事件和委托(delegate)的替代方法是什么?

java - 从在 Tomcat 上运行的 Spring Controller 使用 Runtime.getRuntime().exec 调用基于 .Net Window 的应用程序

c# - 将 DiskIndex 映射到卷标

c# - 在 x64 上使用 WMI 创建 SQL Server 别名

C# System.Management.Automation.Powershell 类在调用 Invoke() 时泄漏内存

c# - 获取具有 'broken' 权限的文件的所有权