【转】 ManagementClass,ManagementObject 的使用
原文: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。
完整实例:
![](/assets/blank.gif)
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 的使用相关推荐
- C#控制远程计算机的服务
在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问,如System.ServiceProcess命名空间下面的ServiceController 类, ...
- 如何通过 .NETCore 获取 Linux,Mac 的硬件信息?
咨询区 Pascal Jackson: 请问我如何通过 .NET Core 去识别 Linux/Mac 电脑上的硬件信息?在 windows 上我可以通过 System.Management 下 WM ...
- 使用C#控制远程计算机的服务[转]
在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问,如 System.ServiceProcess命名空间下面的ServiceController 类 ...
- 管理远程计算机服务,C#中控制远程计算机的服务的方法
C#中控制远程计算机的服务的方法 更新时间:2007年04月16日 00:00:00 作者: 在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问, ...
- ManagementClass,ManagementObject 的使用
网上代码和MSDN帮助中都没有列出 ManagementObject[" "]这里到底有哪些属性可以使用,参考了http://www.groupsrv.com/dotnet/abo ...
- VS/C#中的ManagementClass类和获取硬件的信息的用法
在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作. ManagementClass类:对表示一个通用信息模型 (CIM) ...
- ManagementClass类|获取系统硬件配置(2)
using System; using System.Management; //还需要引用; using System.Collections; using System.Collections.S ...
- C#中的ManagementClass类
C# 提供了ManagementClass类来获取本机的一些基本信息,比如CPU的个数,CPU的频率,网卡的MAC,内存的大小,硬盘的大小等. 获取本机MAC地址: /// <summary&g ...
- ManagementClass类解析和C#如何获取硬件的相关信息
在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作. 现在先来介绍一下ManagementClass类,首先看一下类的继承 ...
最新文章
- 恢复“资源管理器”右键弹出菜单中的“新建”“文本文件”。
- python网络编程—UDP的echo服务
- html细边框表格代码,html中表格细边框的四种实现及其比较.doc
- 2015年Java 8强势开始
- 网站被攻击拿下—只因为程序员一个文件上传功能没写好
- 渗透-N种反弹shell方法
- 易云维医院后勤管理系统浅谈医院空调设备管理的问题及优化建议
- 自动化测试之—Hamcrest匹配器
- PostgreSql 常用 ALTER 语句
- win10系统开启扫描仪服务器,win10通用扫描仪安装步骤
- 面试必备:Zack 大佬带您深入Spring MVC DispatchServlet 源码分析
- 计算机无法检测更新失败怎么办,Windows更新错误解决方案
- 数据(机器学习/深度学习)竞赛平台——Kaggle
- Interface Trip Stop - SRS 报错
- Window7开机速度有点慢的解决办法
- Java笔记07——类和对象
- 内网安全-域横向CSMSF联动及应急响应初识
- Could not resolve all files for configuration “: app: debug Compileclasspath“ mac开发 cordova build踩坑
- VsCode 修改中文显示
- 一本计算机专业啥也不会怎么办?IT大厂实习如何进?
热门文章
- ifream嵌入报错:because it set X-Frame-Options to deny问题解决
- sklearn下载最优方案
- 计算机系统组织结构,计算机系统的组织结构图
- acwing4652.纸张尺寸
- 程序人生 - 程序员高情商的聊天技巧
- 解决有权限却无法访问共享文件夹
- 15KW电动机380V及220V时的电流分别为多少
- linux无法同步数据库表,Linux数据库:MySQL主从同步设置和同步错误处理
- oracle 僵死的进程,oracle僵死Process m000 died,J000 died
- Linux(程序设计):55---非阻塞connect(EINPROGRESS)