Windows 管理规范 (WMI) 是可伸缩的系统管理结构,它采用一个统一的、基于标准的、可扩展的面向对象接口。WMI 为您提供与系统管理信息和基础 WMI API 交互的标准方法。WMI 主要由系统管理应用程序开发人员和管理员用来访问和操作系统管理信息。

WMI 可用于生成组织和管理系统信息的工具,使管理员或系统管理人员能够更密切地监视系统活动。例如,可以使用 WMI 开发一个应用程序,用于在 Web 服务器崩溃时呼叫管理员。

将 WMI 与 .NET 框架一起使用
WMI 提供了大量的规范以便为许多高端应用程序(例如,Microsoft Exchange、Microsoft SQL Server 和 Microsoft Internet 信息服务 (IIS))实现几乎任何管理任务。管理员可以执行下列任务:

监视应用程序的运行状况。
检测瓶颈或故障。
管理和配置应用程序。
查询应用程序数据(使用对象关系的遍历和查询)。
执行无缝的本地或远程管理操作。
WMI 结构由以下三层组成:

客户端
使用 WMI 执行操作(例如,读取管理详细信息、配置系统和预订事件)的软件组件。

对象管理器
提供程序与客户端之间的中间装置,它提供一些关键服务,如标准事件发布和预订、事件筛选、查询引擎等。

提供程序
软件组件,它们捕获实时数据并将其返回到客户端应用程序,处理来自客户端的方法调用并将客户端链接到所管理的基础结构。

通过定义完善的架构向客户端和应用程序无缝地提供了数据和事件以及配置系统的能力。在 .NET 框架中,System.Management 命名空间提供了用于遍历 WMI 架构的公共类。

除了 .NET 框架,还需要在计算机上安装 WMI 才能使用该命名空间中的管理功能。如果使用的是 Windows Millennium Edition、Windows 2000 或 Windows XP,那么已经安装了 WMI。否则,将需要从 MSDN 下载 WMI。

用 System.Management 访问管理信息
System.Management 命名空间是 .NET 框架中的 WMI 命名空间。此命名空间包括下列支持 WMI 操作的第一级类对象:

ManagementObject 或 ManagementClass:分别为单个管理对象或类。
ManagementObjectSearcher:用于根据指定的查询或枚举检索 ManagementObject 或 ManagementClass 对象的集合。
ManagementEventWatcher:用于预订来自 WMI 的事件通知。
ManagementQuery:用作所有查询类的基础。
System.Management 类的使用编码范例对 .NET 框架环境很适合,并且 WMI 在任何适当的时候均使用标准基框架。例如,WMI 广泛利用 .NET 集合类并使用推荐的编码模式,如 .NET 异步操作的“委托”模式。因此,使用 .NET 框架的开发人员可以使用他们的当前技能访问有关计算机或应用程序的管理信息。

请参见
使用 WMI 管理应用程序 | 检索管理对象的集合 | 查询管理信息 | 预订和使用管理事件 | 执行管理对象的方法 | 远程处理和连接选项 | 使用强类型对象

获取CPU序列号代码
string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
Console.WriteLine(cpuInfo);
Console.ReadLine();
}

获取网卡硬件地址
using System.Management;
...
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true)
Console.WriteLine("MAC address\t{0}", mo["MacAddress"].ToString());
mo.Dispose();
}
}

获取硬盘ID
String HDid;
ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
HDid = (string)mo.Properties["Model"].Value;

MessageBox.Show(HDid );
}

转自:http://yyf919.blog.sohu.com/

C# 读取机器CPU信息,硬盘信息,网卡信息(转载)相关推荐

  1. c# 读取机器CPU信息,硬盘信息,网卡信息

    Windows 管理规范 (WMI) 是可伸缩的系统管理结构,它采用一个统一的.基于标准的.可扩展的面向对象接口.WMI 为您提供与系统管理信息和基础 WMI API 交互的标准方法.WMI 主要由系 ...

  2. Linux_查看CPU信息、机器型号等硬件信息

    2019独角兽企业重金招聘Python工程师标准>>> Linux_查看CPU信息.机器型号等硬件信息 博客分类: linux 查看CPU信息(型号) # cat /proc/cpu ...

  3. C# 读取计算机CPU,HDD信息

    C# 读取计算机CPU,HDD信息 public string getCpuInfo() //读取CPU信息         {             ManagementClass mobj = ...

  4. Gem5模拟器,如何在linux系统中查看内存、CPU、硬盘、进程、网络等信息(十二)

    虽然说,这个记录的是与Linux相关的操作,每次查每次忘,必须写一个来归总一下,以免我漫山遍野找命令.但是不想新开一一个主题,再加上确实是在运行模拟器时会关注这方面的信息,就把这一节搁这儿啦. 常见的 ...

  5. Java如何获取系统cpu、内存、硬盘信息

    1 概述 前段时间摸索在Java中怎么获取系统信息包括cpu.内存.硬盘信息等,刚开始使用Java自带的包进行获取,但这样获取的内存信息不够准确并且容易出现找不到相应包等错误,所以后面使用sigar插 ...

  6. winform取CPU编号、MAC地址、硬盘信息、IP地址、串口信息

    winform取CPU编号.MAC地址.硬盘信息.IP地址.串口信息 http://www.cnblogs.com/ccczqh/archive/2011/03/28/1997480.html 作者: ...

  7. Linux 查询 OS、CPU、内存、硬盘信息

    文章目录 Linux 查询 OS.CPU.内存.硬盘信息 一.前言 二.关于服务器基本配置 2.1 操作系统基本配置查询 2.2 CPU基本配置查询 2.3 内存基本配置查询 2.4 硬盘基本配置查询 ...

  8. python获取设备硬件信息_Python实现读取机器硬件信息的方法示例

    本文实例讲述了Python实现读取机器硬件信息的方法.分享给大家供大家参考,具体如下: 本人最近新学python ,用到关于机器的相关信息,经过一番研究,从网上查找资料,经过测试,总结了一下相关的方法 ...

  9. linux查看显卡核心数,linux查看硬件信息,linux查看硬盘信息,linux查看CPU信息,linux查看显卡,硬件型号信息 | 帮助信息-动天数据...

    linux查看硬件信息,linux查看硬盘信息,linux查看CPU信息,linux查看显卡,硬件型号信息 作者:dthost | 时间:2015-09-30 | 8,325 次阅读 linux服务器 ...

最新文章

  1. [JAVA] DUMP
  2. [置顶] 给Fedora修改默认的软件下载源
  3. MSSQL事务开发指南
  4. CentOS7.5实践快速部署LAMP+Tomcat成功运行阿里云或者腾讯云
  5. android 自定义帧动画,Android 自定义方式实现帧动画效果
  6. js 获取json数组里面数组的长度
  7. 前端跨域请求get_解决前端跨域问题方案汇总
  8. 变量命名规则_Java变量与常量
  9. Numpy 数组操作
  10. android studio左边选择渠道,AndroidStudio简单使用(二):左侧Structure
  11. Python Revisited Day10 (进程与线程)
  12. AI 杀疯了,NovelAI开源教程
  13. 删除服务列表中的Tomcat服务?(或删除服务列表中的任意服务)
  14. 计算机u盘启动进不去怎么办,U盘启动盘怎么进不了PE系统 该如何解决
  15. 生物信息学缘起——linux篇(六)for和while循环
  16. 开发人员必备的13项技能
  17. 4年,如何从草根成长成为CTO-(第一篇)
  18. HA状态下防火墙损坏处理
  19. 告诉你,如何成就DBA职业生涯
  20. 《西法的刷题秘籍》电子书开放下载啦~

热门文章

  1. python 钉钉机器人发送图片_利用Python自动发送钉钉数据消息
  2. hive sql 报错后继续执行_Hive优化之Spark执行引擎参数调优(二)
  3. java unsafe 详解_Java CAS操作与Unsafe类详解
  4. JAVA移慎_java里面给对象赋值,慎用赋值符号(=) (转)
  5. Java JavaBean
  6. hadoop 文件介绍
  7. oracle大于或等于,如何用SQL实现最接近某一个值且大于等于这个值的一条记录
  8. php扇形分布图,使用php绘制扇形分布图
  9. python r语言 数据分析_PythonR语言-将Python和R整合进一个数据分析流程
  10. 循环语句在c语言中的作用是什么,C语言中循环语句的使用