原文:http://blog.csdn.net/hardstone1/article/details/5380775

网上代码和MSDN帮助中都没有列出 ManagementObject[" "]这里到底有哪些属性可以使用,参考了http://www.groupsrv.com/dotnet/about69957.html了之后发现了可以枚举出来所有属性,代码如函数getallprop()。

函数useprop中描述了如何获取以激活的网卡的IP地址和它的驱动程序名称,如果大伙需要其他的网卡其他属性,就到getallprop()的结果中去找了,全英文的属性,没有对应的中文介绍,太多了,自己慢慢望文生义吧。

public void getallprop() //获取某个ManagementClass[" "]的所有属性名和值
        {
            ManagementClass c = new ManagementClass("Win32_Process");
            ManagementClass mc;
            mc = new ManagementClass("Win32_NetworkAdapterConfiguration");//网卡信息

//mc = new ManagementClass("Win32_Process");//查看系统进程信息

ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject o in moc)
                foreach (PropertyData prop in o.Properties)
                    textBox2.Text += prop.Name + "---" + prop.Value + "/r/n";  //列出所有可以使用的属性名和值

}

public string useprop()  //具体属性名的使用
        {
            string []mac ;
            ManagementClass mc;
            mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                if (mo["IPEnabled"].ToString() == "True")
                {
                    mac = (System.String[]) mo["IPAddress"];     //获去某网卡IP地址,可以多IP,所以是string[]类型

textBox2.Text += mac[0];//获得某网卡的第一个IP
                    textBox2.Text += mo["ServiceName"] + "/r/n"; //这个是网卡的驱动程序名
                }
            }
          
            return "";
        }

原文:http://www.cnblogs.com/xiangdejun/archive/2010/07/22/1783061.html

1. 添加

System.Management 的引用

2. 在cs代码中初始化引用

ManagementClass mc = new ManagementClass("引用的WMI库名称");

可供引用的WMI类库在MSDN中可查到:

http://msdn.microsoft.com/en-us/library/aa394084(v=VS.85).aspx

3. 获取WMI实例

ManagementObjectCollection moc= vNetworkAdapter.GetInstances();

这里获取到的是WMI实例集合,例如,获取网络适配器信息,这里会获取到无线连接、有线连接、1394连接等与网络连接有关的实例集合。

4. 循环个实例获取其属性

foreach (ManagementObject mo in moc)
{

  //TODO: 获取各实例属性

  //实例各属性、方法、解释也可在http://msdn.microsoft.com/en-us/library/aa394084(v=VS.85).aspx里查到

}

5. 修改

修改需要用到 ManagementObject.InvokeMethod(MethodName, ManagementBaseObject, InvokeMethodOptions ); 方法

MethodName 为要执行的方法名称的,也可在上面MSDN的链接中查到;

ManagementBaseObject 不好解释,官方解释为“包含管理对象的基本元素。用作管理更具体的管理对象类的基类。”

InvokeMethodOptions 执行附加选项,可以为NULL。

完整实例:

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject  mo in moc)
{
    //如果没有启用IP设置的网络设备则跳过   
    if (!(bool)mo["IPEnabled"])
        continue;

// 获取属性
    string caption = mo["Caption"].ToString();              //名称
    string[] addresses = (string[])mo["IPAddress"];         //IP地址
    string[] subnets = (string[])mo["IPSubnet"];            //子网掩码
    string[] gateways = (string[])mo["DefaultIPGateway"];   //网关
    string[] dnses = (string[])mo["DNSServerSearchOrder"];  //DNS

ManagementBaseObject newIP;

// 修改IP及子网掩码
    newIP = mo.GetMethodParameters("EnableStatic");    
    newIP["IPAddress"] = new string[] { "192.168.2.51" };
    newIP["SubnetMask"] = new string[] { "255.255.255.0" }; //修改IP同时,需要填写子网掩码
    mo.InvokeMethod("EnableStatic", newIP, null);

// 设置网关地址 
    newIP = mo.GetMethodParameters("SetGateways");
    newIP["DefaultIPGateway"] = new string[] { "192.168.2.1" };
    mo.InvokeMethod("SetGateways", newIP, null);

// 设置DNS 
    newIP = mo.GetMethodParameters("SetDNSServerSearchOrder");
    newIP["DNSServerSearchOrder"] = new string[] { "192.168.1.10" };
    mo.InvokeMethod("SetDNSServerSearchOrder", newIP, null);
   
}

【转】 ManagementClass,ManagementObject 的使用相关推荐

  1. C#控制远程计算机的服务

    在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问,如System.ServiceProcess命名空间下面的ServiceController 类, ...

  2. 如何通过 .NETCore 获取 Linux,Mac 的硬件信息?

    咨询区 Pascal Jackson: 请问我如何通过 .NET Core 去识别 Linux/Mac 电脑上的硬件信息?在 windows 上我可以通过 System.Management 下 WM ...

  3. 使用C#控制远程计算机的服务[转]

    在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问,如 System.ServiceProcess命名空间下面的ServiceController 类 ...

  4. 管理远程计算机服务,C#中控制远程计算机的服务的方法

    C#中控制远程计算机的服务的方法 更新时间:2007年04月16日 00:00:00   作者: 在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问, ...

  5. ManagementClass,ManagementObject 的使用

    网上代码和MSDN帮助中都没有列出 ManagementObject[" "]这里到底有哪些属性可以使用,参考了http://www.groupsrv.com/dotnet/abo ...

  6. VS/C#中的ManagementClass类和获取硬件的信息的用法

    在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作. ManagementClass类:对表示一个通用信息模型 (CIM) ...

  7. ManagementClass类|获取系统硬件配置(2)

    using System; using System.Management; //还需要引用; using System.Collections; using System.Collections.S ...

  8. C#中的ManagementClass类

    C# 提供了ManagementClass类来获取本机的一些基本信息,比如CPU的个数,CPU的频率,网卡的MAC,内存的大小,硬盘的大小等. 获取本机MAC地址: /// <summary&g ...

  9. ManagementClass类解析和C#如何获取硬件的相关信息

    在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作. 现在先来介绍一下ManagementClass类,首先看一下类的继承 ...

最新文章

  1. 恢复“资源管理器”右键弹出菜单中的“新建”“文本文件”。
  2. python网络编程—UDP的echo服务
  3. html细边框表格代码,html中表格细边框的四种实现及其比较.doc
  4. 2015年Java 8强势开始
  5. 网站被攻击拿下—只因为程序员一个文件上传功能没写好
  6. 渗透-N种反弹shell方法
  7. 易云维医院后勤管理系统浅谈医院空调设备管理的问题及优化建议
  8. 自动化测试之—Hamcrest匹配器
  9. PostgreSql 常用 ALTER 语句
  10. win10系统开启扫描仪服务器,win10通用扫描仪安装步骤
  11. 面试必备:Zack 大佬带您深入Spring MVC DispatchServlet 源码分析
  12. 计算机无法检测更新失败怎么办,Windows更新错误解决方案
  13. 数据(机器学习/深度学习)竞赛平台——Kaggle
  14. Interface Trip Stop - SRS 报错
  15. Window7开机速度有点慢的解决办法
  16. Java笔记07——类和对象
  17. 内网安全-域横向CSMSF联动及应急响应初识
  18. Could not resolve all files for configuration “: app: debug Compileclasspath“ mac开发 cordova build踩坑
  19. VsCode 修改中文显示
  20. 一本计算机专业啥也不会怎么办?IT大厂实习如何进?

热门文章

  1. ifream嵌入报错:because it set X-Frame-Options to deny问题解决
  2. sklearn下载最优方案
  3. 计算机系统组织结构,计算机系统的组织结构图
  4. acwing4652.纸张尺寸
  5. 程序人生 - 程序员高情商的聊天技巧
  6. 解决有权限却无法访问共享文件夹
  7. 15KW电动机380V及220V时的电流分别为多少
  8. linux无法同步数据库表,Linux数据库:MySQL主从同步设置和同步错误处理
  9. oracle 僵死的进程,oracle僵死Process m000 died,J000 died
  10. Linux(程序设计):55---非阻塞connect(EINPROGRESS)