• WMI技术介绍和应用——查询硬件信息


            这个月实在太忙了,一直没有时间去继续写WMI的应用例子。 本来是希望将《WMI技术介绍和应用》系列博文写的像WMI百科全书般,但是貌似对这个技术感兴趣的同学并不多,所以我决定对部分知识点点到为止,有需求的同学可以查询MSDN相关类的说明即可。本文将罗列一些可能使用到的一些知识点。如果你发现你期望查询的硬件信息在本文中没有写出来,请参看MSDN的《Computer System Hardware Classes》中相关的类。(转载请指明出于breaksoftware的csdn博客)

            查询硬盘信息

            因为一台电脑上可以有多块硬盘,所以在查询硬盘信息之前,我们需要明确我们要查询哪块硬盘。其中我们将要使用到《WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息》中相关信息。本文我们将以获取系统启动盘所在的硬盘信息为例。首先我们通过

    SELECT DiskIndex FROM Win32_DiskPartition WHERE Bootable = TRUE  


            查询得到系统盘所在硬盘的ID = 0。然后我们通过该ID,查询该硬盘信息。
            如何使用WMI查询系统盘所在硬盘的硬盘序列号?

    SELECT SerialNumber FROM Win32_DiskDrive WHERE Index = 0


            这儿必须要注意下,我这儿设置的Index = 0,是通过之前的查询得知系统盘所在硬盘的ID而定的,即在我的电脑上Index=0的硬盘是启动硬盘。
            如何使用WMI查询系统盘所在的硬盘的接口类型?

    SELECT InterfaceType FROM Win32_DiskDrive WHERE Index = 0


             如何使用WMI查询系统盘所在的硬盘的名字?

    SELECT Caption FROM Win32_DiskDrive WHERE Index = 0


              如何使用WMI查询系统盘所在的硬盘的大小?

    SELECT Size FROM Win32_DiskDrive WHERE Index = 0


            看这个数字,就是160G硬盘实际的byte数。注意这个是10进制数字,而我们在电脑上看到硬盘的大小为该数字除以(1024*1024*1024)。

            查询主板信息

            如何使用WMI查询主板的序列号?

    SELECT SerialNumber FROM Win32_BaseBoard
    


            查询BIOS信息

            如何使用WMI查询BIOS的序列号?

    SELECT SerialNumber FROM Win32_BIOS


            如何使用WMI查询BIOS的厂商?

    SELECT Manufacturer FROM Win32_BIOS


            如何使用WMI查询BIOS的版本号?

    SELECT SMBIOSMajorVersion,SMBIOSMinorVersion FROM Win32_BIOS


            如何使用WMI查询内存信息?

    SELECT * FROM Win32_MemoryDevice


            查询显示器信息

            如何使用WMI查询显示器的分辨率?

    SELECT ScreenHeight FROM Win32_DesktopMonitor


           如何使用WMI查询屏幕刷新频率?

    SELECT DisplayFrequency FROM Win32_DisplayConfiguration


            查询网络适配器

            如何使用WMI查询处于活动状态的网卡MAC地址?

    SELECT MACAddress FROM Win32_NetworkAdapter WHERE NetEnabled = 'TRUE'


            可以见得我这儿有三个处于活动状态的网卡,其对应于


            如果想排除VM虚拟出来的网卡,可以通过厂商名字限制。

            查询CPU信息

            如何使用WMI查询CPU的序列号?

    SELECT ProcessorId FROM Win32_Processor


            如何使用WMI查询CPU的名称?

    SELECT Name FROM Win32_Processor


            如何使用WMI查询有几个物理核心和几个逻辑核心?

    SELECT NumberOfCores,NumberOfLogicalProcessors FROM Win32_Processor


            这个数据说明T9400是双核双线程CPU。

            如何使用WMI判断当前系统是32位系统还是64位系统?

    SELECT AddressWidth FROM Win32_Processor


            这个证明我当前系统是64位系统。

            如何使用WMI获取CPU构架?

    SELECT Architecture FROM Win32_Processor


            该值表明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


            如何使用WMI查询CPU的外频?

    SELECT ExtClock FROM Win32_Processor


            单位是MHz。即266MHz。

            如何使用WMI查询CPU的主频?

    SELECT CurrentClockSpeed FROM Win32_Processor


            单位是MHz。即2.534GHz。

            至此,使用WMI查询的内容就讲完了。之后我将讲解如何使用WMI监听事件,这也是个非常强大和有趣的功能,我们拭目以待吧。

  • 相关阅读:
    .net core实现前后端彻底分离
    在webapi中使用swagger
    在vs中启动项目,同时给项目传递参数
    在服务器中无法自宿主启动一个webapi项目,引出查看系统端口是否被占用
    display:none与visibility:hidden的区别是什么?
    px和em的区别
    如何垂直居中一个浮动元素?如何垂直居中一个<img>?
    rgba()和opacity的透明效果有什么不同?
    什么是外边距重叠?重叠的结果是什么?
    行内元素和块级元素的具体区别是什么?行内元素的padding和margin可设置吗?
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3030916.html
Copyright © 2020-2023  润新知