本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)

本节主要介绍Win32_DiskPartition和Win32_LogicalDisk两个类的应用。Win32_DiskPartition用于查询磁盘分区信息,Win32_LogicalDisk用于查询逻辑磁盘信息。

如何使用WMI枚举所有磁盘分区信息?

SELECT * FROM Win32_DiskPartition

以上是我查询我本机的信息。在我这台电脑上,装有两块硬盘,其中第二块安装上去的硬盘是500G,它的信息由上图第一组数据体现。第一款硬盘是160G,被分成60G的系统盘和90G的普通盘。其中系统盘信息由上图中第二组数据体现,而90G的逻辑盘由上图中最后一组数据体现。现在我们将拆开这些信息,讲解如何利用这些信息。

如何使用WMI获取系统启动盘所在的硬盘ID(非序列号)?

SELECT DiskIndex FROM Win32_DiskPartition WHERE Bootable = TRUE


        在装有多块硬盘的机器上,这个功能很重要。比如我们想尝试获取一个硬盘序列号,来作为计算用户唯一码的因子,此时获取一个固定的硬盘ID就很重要了。因为插拔硬盘的原因,WMI枚举到的第一个硬盘信息是不确定的。

如何使用WMI查询指定磁盘上有多少分区?

SELECT Index FROM Win32_DiskPartition WHERE DiskIndex = 0


        这标志该磁盘有两个分区。

如何使用WMI获取指定分区的大小?

SELECT Size FROM Win32_DiskPartition WHERE DiskIndex = 1 AND Index = 0


        该大小是以BYTES为单位的。

如何使用WMI获取指定分区上有多少块(BLOCK)及每块的大小?

SELECT BlockSize,NumberOfBlocks FROM Win32_DiskPartition WHERE DiskIndex = 1 AND Index = 0


        这两个数值的积就是该磁盘的Size大小。

如何使用WMI枚举所有逻辑磁盘信息?

SELECT * FROM Win32_LogicalDisk

目前我电脑上有如下逻辑磁盘

其中A盘,是一个网络映射磁盘。它的信息是

C、D盘是在一块硬盘上,它们的信息是

E盘是在另一个独立的硬盘上,它的信息是

其他磁盘的信息是:

如何使用WMI查询指定盘符的逻辑磁盘名?

SELECT VolumeName FROM Win32_LogicalDisk WHERE NAME = 'C:'


        如何使用WMI查询指定盘符的逻辑磁盘类型?

SELECT DriveType FROM Win32_LogicalDisk WHERE NAME = 'C:'


        一般来说,逻辑磁盘可以分为:网络映射磁盘、本地磁盘和移动磁盘。如我电脑上A盘的类型就是4,CDE盘的类型是3,FI盘(光驱)的类型是5。有个特例,我电脑上的金山快盘是标记为2(移动磁盘类型)。它们具体的对应关系是

Value Meaning

0

Unknown

1

No Root Directory

2

Removable Disk

3

Local Disk

4

Network Drive

5

Compact Disc

6

RAM Disk

如何使用WMI查询指定盘符的分区空间和剩余空间?

SELECT Size,FreeSpace FROM Win32_LogicalDisk WHERE NAME = 'C:'


        如何使用WMI查询指定盘符的分区的文件系统类型?

SELECT FileSystem FROM Win32_LogicalDisk WHERE NAME = 'C:'


        如何使用WMI查询指定盘符的分区的序列号(非硬盘序列号)?

SELECT VolumeSerialNumber FROM Win32_LogicalDisk WHERE NAME = 'C:'

工程源码见《WMI技术介绍和应用——WMI概述》结尾。

WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息相关推荐

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

    这个月实在太忙了,一直没有时间去继续写WMI的应用例子. 本来是希望将<WMI技术介绍和应用>系列博文写的像WMI百科全书般,但是貌似对这个技术感兴趣的同学并不多,所以我决定对部分知识点点 ...

  2. WMI技术介绍和应用——查询快捷方式、映射磁盘和虚拟内存信息

    本文使用了<WMI技术介绍和应用--使用VC编写一个半同步查询WMI服务的类>中代码做为基础.本节只是列出了WQL语句,具体使用参看前面的例子.(转载请指明出于breaksoftware的 ...

  3. WMI技术介绍和应用——查询文件夹信息

    本文使用了<WMI技术介绍和应用--使用VC编写一个半同步查询WMI服务的类>中代码做为基础.本节只是列出了WQL语句,具体使用参看前面的例子. 本节主要介绍Win32_Directory ...

  4. WMI技术介绍和应用——查询本地用户和组

    本文使用了< WMI技术介绍和应用--使用VC编写一个半同步查询WMI服务的类>中代码做为基础.本节只是列出了WQL语句,具体使用参看前面的例子.( 转载请指明出于breaksoftwar ...

  5. WMI技术介绍和应用——查询系统服务

    本文使用了< WMI技术介绍和应用--使用VC编写一个半同步查询WMI服务的类>中代码做为基础.本节只是列出了WQL语句,具体使用参看前面的例子.( 转载请指明出于breaksoftwar ...

  6. WMI技术介绍和应用——查询时间信息

    本文使用了<WMI技术介绍和应用--使用VC编写一个半同步查询WMI服务的类>中代码做为基础.本节只是列出了WQL语句,具体使用参看前面的例子.(转载请指明出于breaksoftware的 ...

  7. WMI技术介绍和应用——查询系统信息和补丁包信息

    本文使用了< WMI技术介绍和应用--使用VC编写一个半同步查询WMI服务的类>中代码做为基础.本节只是列出了WQL语句,具体使用参看前面的例子.( 转载请指明出于breaksoftwar ...

  8. WMI技术介绍和应用——查询系统信息

    本文使用了<WMI技术介绍和应用--使用VC编写一个半同步查询WMI服务的类>中代码做为基础.本节只是列出了WQL语句,具体使用参看前面的例子.(转载请指明出于breaksoftware的 ...

  9. WMI技术介绍和应用——查询驱动信息

    本文使用了<WMI技术介绍和应用--使用VC编写一个半同步查询WMI服务的类>中代码做为基础.         如何使用WMI查询所有驱动信息?(转载请指明出于breaksoftware的 ...

最新文章

  1. API Monitor(API监控工具)
  2. ssh代理登录内网服务器
  3. boost::math::tools::polynomial用法的测试程序
  4. 内存颗粒位宽和容量_64M的SDRAM颗粒 一般内存是多大的?
  5. 【LeetCode】3月31日打卡-Day16-数组排序算法汇总
  6. 2021-08-04 PYTHON基础——类和对象的代码格式
  7. 数字电路逻辑关系式化简(代数运算)
  8. QTTabBar功能是灰色,无法启用的解决办法
  9. 软件测试工程师在不同阶段需要掌握的技能
  10. 物联网卡可以一次性买很多吗?从哪可以购买物联网卡
  11. 服务器装系统bios设置方法,u盘重装系统bios设置步骤 bios设置U盘启动详解
  12. linux firefox flashplayer 升级,在deepin中更新火狐浏览器firefox和firefox-flashplayer的方法...
  13. python初学之字符串、列表与元组小练习
  14. Python实战:一键导出微信读书的书籍和笔记
  15. [LOJ#3124][CTS2019]氪金手游(概率 + 树形 DP + 容斥)
  16. 微信小程序和uniapp开发工具
  17. Windows服务器忘记密码后找回方法
  18. 【CSDN博客频道携手图灵教育】“移动开发之我见”主题征文活动
  19. MySQL——页的理解
  20. Apple 公司账号续费流程

热门文章

  1. 机器学习四剑客4——PIL
  2. 使用Python,OpenCV实现简单的场景边界/拍摄转换检测器
  3. 使用pycharm将自己项目代码上传github(保姆教程)
  4. 三门问题(蒙提霍尔悖论)的Python代码实现
  5. OpenCV读写xml和yml文件
  6. LeetCode刷题记录4——67. Add Binary(easy)
  7. 天顶角Zenith方位角Azimuth
  8. JS获取一个字符串中被指定的两个字符串包括起来的所有字符串数组
  9. 强哥PS强化培训班课程目录
  10. OpenResty中遇到Can't locate Time/HiRes.pm in @INC问题的解决方法