WMI技术介绍和应用——查询硬件信息
2014-02-17 16:02
465 查看
转自 :/article/1826057.html
这个月实在太忙了,一直没有时间去继续写WMI的应用例子。 本来是希望将《WMI技术介绍和应用》系列博文写的像WMI百科全书般,但是貌似对这个技术感兴趣的同学并不多,所以我决定对部分知识点点到为止,有需求的同学可以查询MSDN相关类的说明即可。本文将罗列一些可能使用到的一些知识点。如果你发现你期望查询的硬件信息在本文中没有写出来,请参看MSDN的《Computer
System Hardware Classes》中相关的类。(转载请指明出于breaksoftware的csdn博客)
查询硬盘信息
因为一台电脑上可以有多块硬盘,所以在查询硬盘信息之前,我们需要明确我们要查询哪块硬盘。其中我们将要使用到《WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息》中相关信息。本文我们将以获取系统启动盘所在的硬盘信息为例。首先我们通过
[plain] view
plaincopy
SELECT DiskIndex FROM Win32_DiskPartition WHERE Bootable = TRUE
![](http://img.my.csdn.net/uploads/201301/15/1358251531_8293.png)
查询得到系统盘所在硬盘的ID = 0。然后我们通过该ID,查询该硬盘信息。
如何使用WMI查询系统盘所在硬盘的硬盘序列号?
[plain] view
plaincopy
SELECT SerialNumber FROM Win32_DiskDrive WHERE Index = 0
![](http://img.my.csdn.net/uploads/201304/18/1366290926_7138.png)
这儿必须要注意下,我这儿设置的Index = 0,是通过之前的查询得知系统盘所在硬盘的ID而定的,即在我的电脑上Index=0的硬盘是启动硬盘。
如何使用WMI查询系统盘所在的硬盘的接口类型?
[plain] view
plaincopy
SELECT InterfaceType FROM Win32_DiskDrive WHERE Index = 0
![](http://img.my.csdn.net/uploads/201304/18/1366291175_6578.png)
如何使用WMI查询系统盘所在的硬盘的名字?
[plain] view
plaincopy
SELECT Caption FROM Win32_DiskDrive WHERE Index = 0
![](http://img.my.csdn.net/uploads/201304/18/1366291472_7679.png)
如何使用WMI查询系统盘所在的硬盘的大小?
[plain] view
plaincopy
SELECT Size FROM Win32_DiskDrive WHERE Index = 0
![](http://img.my.csdn.net/uploads/201304/18/1366291635_9486.png)
看这个数字,就是160G硬盘实际的byte数。注意这个是10进制数字,而我们在电脑上看到硬盘的大小为该数字除以(1024*1024*1024)。
查询主板信息
如何使用WMI查询主板的序列号?
[plain] view
plaincopy
SELECT SerialNumber FROM Win32_BaseBoard
![](http://img.my.csdn.net/uploads/201304/18/1366292029_2485.png)
查询BIOS信息
如何使用WMI查询BIOS的序列号?
[plain] view
plaincopy
SELECT SerialNumber FROM Win32_BIOS
![](http://img.my.csdn.net/uploads/201304/18/1366292325_3073.png)
如何使用WMI查询BIOS的厂商?
[plain] view
plaincopy
SELECT Manufacturer FROM Win32_BIOS
![](http://img.my.csdn.net/uploads/201304/18/1366292427_3369.png)
如何使用WMI查询BIOS的版本号?
[plain] view
plaincopy
SELECT SMBIOSMajorVersion,SMBIOSMinorVersion FROM Win32_BIOS
![](http://img.my.csdn.net/uploads/201304/18/1366292517_5973.png)
如何使用WMI查询内存信息?
[plain] view
plaincopy
SELECT * FROM Win32_MemoryDevice
![](http://img.my.csdn.net/uploads/201304/18/1366292922_3249.png)
查询显示器信息
如何使用WMI查询显示器的分辨率?
[plain] view
plaincopy
SELECT ScreenHeight FROM Win32_DesktopMonitor
![](http://img.my.csdn.net/uploads/201304/18/1366293773_1365.png)
如何使用WMI查询屏幕刷新频率?
[plain] view
plaincopy
SELECT DisplayFrequency FROM Win32_DisplayConfiguration
![](http://img.my.csdn.net/uploads/201304/18/1366293970_6146.png)
![](http://img.my.csdn.net/uploads/201304/18/1366294009_6690.png)
查询网络适配器
如何使用WMI查询处于活动状态的网卡MAC地址?
[plain] view
plaincopy
SELECT MACAddress FROM Win32_NetworkAdapter WHERE NetEnabled = 'TRUE'
![](http://img.my.csdn.net/uploads/201304/18/1366295123_1013.png)
可以见得我这儿有三个处于活动状态的网卡,其对应于
![](http://img.my.csdn.net/uploads/201304/18/1366295191_6002.png)
如果想排除VM虚拟出来的网卡,可以通过厂商名字限制。
查询CPU信息
如何使用WMI查询CPU的序列号?
[plain] view
plaincopy
SELECT ProcessorId FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366295501_8134.png)
如何使用WMI查询CPU的名称?
[plain] view
plaincopy
SELECT Name FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366295608_4875.png)
如何使用WMI查询有几个物理核心和几个逻辑核心?
[plain] view
plaincopy
SELECT NumberOfCores,NumberOfLogicalProcessors FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366295798_2894.png)
这个数据说明T9400是双核双线程CPU。
如何使用WMI判断当前系统是32位系统还是64位系统?
[plain] view
plaincopy
SELECT AddressWidth FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366296046_5026.png)
这个证明我当前系统是64位系统。
如何使用WMI获取CPU构架?
[plain] view
plaincopy
SELECT Architecture FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366296148_2044.png)
该值表明T9400是x64构架CPU。
如何使用WMI查询CPU的外频?
[plain] view
plaincopy
SELECT ExtClock FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366296442_1831.png)
单位是MHz。即266MHz。
如何使用WMI查询CPU的主频?
[plain] view
plaincopy
SELECT CurrentClockSpeed FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366296586_9724.png)
单位是MHz。即2.534GHz。
至此,使用WMI查询的内容就讲完了。之后我将讲解如何使用WMI监听事件,这也是个非常强大和有趣的功能,我们拭目以待吧。
这个月实在太忙了,一直没有时间去继续写WMI的应用例子。 本来是希望将《WMI技术介绍和应用》系列博文写的像WMI百科全书般,但是貌似对这个技术感兴趣的同学并不多,所以我决定对部分知识点点到为止,有需求的同学可以查询MSDN相关类的说明即可。本文将罗列一些可能使用到的一些知识点。如果你发现你期望查询的硬件信息在本文中没有写出来,请参看MSDN的《Computer
System Hardware Classes》中相关的类。(转载请指明出于breaksoftware的csdn博客)
查询硬盘信息
因为一台电脑上可以有多块硬盘,所以在查询硬盘信息之前,我们需要明确我们要查询哪块硬盘。其中我们将要使用到《WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息》中相关信息。本文我们将以获取系统启动盘所在的硬盘信息为例。首先我们通过
[plain] view
plaincopy
SELECT DiskIndex FROM Win32_DiskPartition WHERE Bootable = TRUE
![](http://img.my.csdn.net/uploads/201301/15/1358251531_8293.png)
查询得到系统盘所在硬盘的ID = 0。然后我们通过该ID,查询该硬盘信息。
如何使用WMI查询系统盘所在硬盘的硬盘序列号?
[plain] view
plaincopy
SELECT SerialNumber FROM Win32_DiskDrive WHERE Index = 0
![](http://img.my.csdn.net/uploads/201304/18/1366290926_7138.png)
这儿必须要注意下,我这儿设置的Index = 0,是通过之前的查询得知系统盘所在硬盘的ID而定的,即在我的电脑上Index=0的硬盘是启动硬盘。
如何使用WMI查询系统盘所在的硬盘的接口类型?
[plain] view
plaincopy
SELECT InterfaceType FROM Win32_DiskDrive WHERE Index = 0
![](http://img.my.csdn.net/uploads/201304/18/1366291175_6578.png)
如何使用WMI查询系统盘所在的硬盘的名字?
[plain] view
plaincopy
SELECT Caption FROM Win32_DiskDrive WHERE Index = 0
![](http://img.my.csdn.net/uploads/201304/18/1366291472_7679.png)
如何使用WMI查询系统盘所在的硬盘的大小?
[plain] view
plaincopy
SELECT Size FROM Win32_DiskDrive WHERE Index = 0
![](http://img.my.csdn.net/uploads/201304/18/1366291635_9486.png)
看这个数字,就是160G硬盘实际的byte数。注意这个是10进制数字,而我们在电脑上看到硬盘的大小为该数字除以(1024*1024*1024)。
查询主板信息
如何使用WMI查询主板的序列号?
[plain] view
plaincopy
SELECT SerialNumber FROM Win32_BaseBoard
![](http://img.my.csdn.net/uploads/201304/18/1366292029_2485.png)
查询BIOS信息
如何使用WMI查询BIOS的序列号?
[plain] view
plaincopy
SELECT SerialNumber FROM Win32_BIOS
![](http://img.my.csdn.net/uploads/201304/18/1366292325_3073.png)
如何使用WMI查询BIOS的厂商?
[plain] view
plaincopy
SELECT Manufacturer FROM Win32_BIOS
![](http://img.my.csdn.net/uploads/201304/18/1366292427_3369.png)
如何使用WMI查询BIOS的版本号?
[plain] view
plaincopy
SELECT SMBIOSMajorVersion,SMBIOSMinorVersion FROM Win32_BIOS
![](http://img.my.csdn.net/uploads/201304/18/1366292517_5973.png)
如何使用WMI查询内存信息?
[plain] view
plaincopy
SELECT * FROM Win32_MemoryDevice
![](http://img.my.csdn.net/uploads/201304/18/1366292922_3249.png)
查询显示器信息
如何使用WMI查询显示器的分辨率?
[plain] view
plaincopy
SELECT ScreenHeight FROM Win32_DesktopMonitor
![](http://img.my.csdn.net/uploads/201304/18/1366293773_1365.png)
如何使用WMI查询屏幕刷新频率?
[plain] view
plaincopy
SELECT DisplayFrequency FROM Win32_DisplayConfiguration
![](http://img.my.csdn.net/uploads/201304/18/1366293970_6146.png)
![](http://img.my.csdn.net/uploads/201304/18/1366294009_6690.png)
查询网络适配器
如何使用WMI查询处于活动状态的网卡MAC地址?
[plain] view
plaincopy
SELECT MACAddress FROM Win32_NetworkAdapter WHERE NetEnabled = 'TRUE'
![](http://img.my.csdn.net/uploads/201304/18/1366295123_1013.png)
可以见得我这儿有三个处于活动状态的网卡,其对应于
![](http://img.my.csdn.net/uploads/201304/18/1366295191_6002.png)
如果想排除VM虚拟出来的网卡,可以通过厂商名字限制。
查询CPU信息
如何使用WMI查询CPU的序列号?
[plain] view
plaincopy
SELECT ProcessorId FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366295501_8134.png)
如何使用WMI查询CPU的名称?
[plain] view
plaincopy
SELECT Name FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366295608_4875.png)
如何使用WMI查询有几个物理核心和几个逻辑核心?
[plain] view
plaincopy
SELECT NumberOfCores,NumberOfLogicalProcessors FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366295798_2894.png)
这个数据说明T9400是双核双线程CPU。
如何使用WMI判断当前系统是32位系统还是64位系统?
[plain] view
plaincopy
SELECT AddressWidth FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366296046_5026.png)
这个证明我当前系统是64位系统。
如何使用WMI获取CPU构架?
[plain] view
plaincopy
SELECT Architecture FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366296148_2044.png)
该值表明T9400是x64构架CPU。
Value | Meaning |
---|---|
0 (0x0) | x86 |
1 (0x1) | MIPS |
2 (0x2) | Alpha |
3 (0x3) | PowerPC |
5 (0x5) | ARM |
6 (0x6) | Itanium-based systems |
9 (0x9) | x64 |
[plain] view
plaincopy
SELECT ExtClock FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366296442_1831.png)
单位是MHz。即266MHz。
如何使用WMI查询CPU的主频?
[plain] view
plaincopy
SELECT CurrentClockSpeed FROM Win32_Processor
![](http://img.my.csdn.net/uploads/201304/18/1366296586_9724.png)
单位是MHz。即2.534GHz。
至此,使用WMI查询的内容就讲完了。之后我将讲解如何使用WMI监听事件,这也是个非常强大和有趣的功能,我们拭目以待吧。
相关文章推荐
- WMI技术介绍和应用——查询硬件信息
- WMI技术介绍和应用——查询硬件信息
- WMI技术介绍和应用——查询硬件信息
- WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息
- WMI技术介绍和应用——查询系统信息和补丁包信息
- WMI技术介绍和应用——查询时间信息
- WMI技术介绍和应用——查询系统信息和补丁包信息
- WMI技术介绍和应用——查询正在运行的进程信息
- WMI技术介绍和应用——查询正在运行的线程信息
- WMI技术介绍和应用——查询快捷方式、映射磁盘和虚拟内存信息
- WMI技术介绍和应用——查询系统信息
- WMI技术介绍和应用——查询桌面信息
- WMI技术介绍和应用——查询文件夹信息
- WMI技术介绍和应用——查询驱动信息
- WMI技术介绍和应用——查询系统服务
- WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类
- WMI技术介绍和应用——查询硬件信息
- WMI技术介绍和应用——查询环境变量
- WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类
- WMI技术介绍和应用——查询本地用户和组