获取CPU序列号,硬盘序列号,网卡mac地址
private string[] GetMoc()
{
string[] str=new string[3];
//获取CPU序列号
ManagementClass mcCpu=new ManagementClass("win32_Processor");
ManagementObjectCollection mocCpu=mcCpu.GetInstances();
foreach(ManagementObject minmocCpu)
{
str[0]=m["ProcessorId"].ToString();
}
//获取硬盘序列号
ManagementClass mcHD=new ManagementClass("win32_logicaldisk");
ManagementObjectCollection mocHD=mcHD.GetInstances();
foreach(ManagementObject minmocHD)
{
if(m["DeviceID"].ToString()=="C:")
{
str[1]=m["VolumeSerialNumber"].ToString();
break;
}
}
//获取网卡MAC地址
ManagementClass mcMAC=newManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mocMAC=mcMAC.GetInstances();
foreach(ManagementObject minmocMAC)
{
if((bool)m["IPEnabled"])
{
str[2]=m["MacAddress"].ToString();
break;
}
}
return str;
}
附录
→ManagementClass
表示公共信息模型 (CIM) 管理类。管理类是一个 WMI 类,如 Win32_LogicalDisk 和Win32_Process,前者表示磁盘驱动器,后者表示进程(如 Notepad.exe)。通过该类的成员,可以使用特定的 WMI 类路径访问 WMI 数据。
→WMI
Windows 管理规范 (WMI) 是可伸缩的系统管理结构,它采用一个统一的、基于标准的、可扩展的面向对象接口。WMI 为您提供与系统管理信息和基础 WMI API 交互的标准方法。WMI 主要由系统管理应用程序开发人员和管理员用来访问和操作系统管理信息。
WMI 可用于生成组织和管理系统信息的工具,使管理员或系统管理人员能够更密切地监视系统活动。例如,可以使用 WMI 开发一个应用程序,用于在 Web 服务器崩溃时呼叫管理员。
→ManagementObjectCollection
表示通过 WMI 检索到的管理对象的不同集合。此集合中的对象为从 ManagementBaseObject 派生的类型,包括 ManagementObject 和 ManagementClass。通过 ManagementObjectSerarcher 对象执行 WMI 查询,或者通过表示指定类型的 ManagementClass 检索该类型管理对象的枚举,可得到此集合。此外,这也可能是以指定方式与特定管理对象相关的管理对象集合 — 在这种情况下,此集合可以通过诸如 GetRelated 之类的方法检索到。此集合可以通过 ManagementObjectCollection.ManagementObjectEnumerator遍历,并且能够针对各种管理任务对集合中的对象进行检查或操作。