WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息
? ? ? ??本文使用了《WMI技術(shù)介紹和應(yīng)用——使用VC編寫一個(gè)半同步查詢WMI服務(wù)的類》中代碼做為基礎(chǔ)。本節(jié)只是列出了WQL語句,具體使用參看前面的例子。(轉(zhuǎn)載請(qǐng)指明出于breaksoftware的csdn博客)
? ? ? ? 本節(jié)主要介紹Win32_DiskPartition和Win32_LogicalDisk兩個(gè)類的應(yīng)用。Win32_DiskPartition用于查詢磁盤分區(qū)信息,Win32_LogicalDisk用于查詢邏輯磁盤信息。
? ? ? ? 如何使用WMI枚舉所有磁盤分區(qū)信息?
SELECT * FROM Win32_DiskPartition
?
? ? ? ? 以上是我查詢我本機(jī)的信息。在我這臺(tái)電腦上,裝有兩塊硬盤,其中第二塊安裝上去的硬盤是500G,它的信息由上圖第一組數(shù)據(jù)體現(xiàn)。第一款硬盤是160G,被分成60G的系統(tǒng)盤和90G的普通盤。其中系統(tǒng)盤信息由上圖中第二組數(shù)據(jù)體現(xiàn),而90G的邏輯盤由上圖中最后一組數(shù)據(jù)體現(xiàn)。現(xiàn)在我們將拆開這些信息,講解如何利用這些信息。
? ? ? ? 如何使用WMI獲取系統(tǒng)啟動(dòng)盤所在的硬盤ID(非序列號(hào))?
SELECT DiskIndex FROM Win32_DiskPartition WHERE Bootable = TRUE
? ? ? ? 在裝有多塊硬盤的機(jī)器上,這個(gè)功能很重要。比如我們想嘗試獲取一個(gè)硬盤序列號(hào),來作為計(jì)算用戶唯一碼的因子,此時(shí)獲取一個(gè)固定的硬盤ID就很重要了。因?yàn)椴灏斡脖P的原因,WMI枚舉到的第一個(gè)硬盤信息是不確定的。
? ? ? ? 如何使用WMI查詢指定磁盤上有多少分區(qū)?
SELECT Index FROM Win32_DiskPartition WHERE DiskIndex = 0
? ? ? ? 這標(biāo)志該磁盤有兩個(gè)分區(qū)。
? ? ? ? 如何使用WMI獲取指定分區(qū)的大小?
SELECT Size FROM Win32_DiskPartition WHERE DiskIndex = 1 AND Index = 0
? ? ? ? 該大小是以BYTES為單位的。
? ? ? ? 如何使用WMI獲取指定分區(qū)上有多少塊(BLOCK)及每塊的大小?
SELECT BlockSize,NumberOfBlocks FROM Win32_DiskPartition WHERE DiskIndex = 1 AND Index = 0
? ? ? ? 這兩個(gè)數(shù)值的積就是該磁盤的Size大小。
? ? ? ? 如何使用WMI枚舉所有邏輯磁盤信息?
SELECT * FROM Win32_LogicalDisk
? ? ? ? 目前我電腦上有如下邏輯磁盤
? ? ? ? 其中A盤,是一個(gè)網(wǎng)絡(luò)映射磁盤。它的信息是
? ? ? ? C、D盤是在一塊硬盤上,它們的信息是
? ? ? ? E盤是在另一個(gè)獨(dú)立的硬盤上,它的信息是
? ? ? ? 其他磁盤的信息是:
? ? ? ? 如何使用WMI查詢指定盤符的邏輯磁盤名?
SELECT VolumeName FROM Win32_LogicalDisk WHERE NAME = 'C:'
? ? ? ? 如何使用WMI查詢指定盤符的邏輯磁盤類型?
SELECT DriveType FROM Win32_LogicalDisk WHERE NAME = 'C:'
? ? ? ? 一般來說,邏輯磁盤可以分為:網(wǎng)絡(luò)映射磁盤、本地磁盤和移動(dòng)磁盤。如我電腦上A盤的類型就是4,CDE盤的類型是3,FI盤(光驅(qū))的類型是5。有個(gè)特例,我電腦上的金山快盤是標(biāo)記為2(移動(dòng)磁盤類型)。它們具體的對(duì)應(yīng)關(guān)系是
| Value | Meaning |
|---|---|
| 0 | Unknown |
| 1 | No Root Directory |
| 2 | Removable Disk |
| 3 | Local Disk |
| 4 | Network Drive |
| 5 | Compact Disc |
| 6 | RAM Disk |
? ? ? ? 如何使用WMI查詢指定盤符的分區(qū)空間和剩余空間?
SELECT Size,FreeSpace FROM Win32_LogicalDisk WHERE NAME = 'C:'
? ? ? ? 如何使用WMI查詢指定盤符的分區(qū)的文件系統(tǒng)類型?
SELECT FileSystem FROM Win32_LogicalDisk WHERE NAME = 'C:'
? ? ? ? 如何使用WMI查詢指定盤符的分區(qū)的序列號(hào)(非硬盤序列號(hào))?
SELECT VolumeSerialNumber FROM Win32_LogicalDisk WHERE NAME = 'C:'
? ? ? ??工程源碼見《WMI技術(shù)介紹和應(yīng)用——WMI概述》結(jié)尾。
總結(jié)
以上是生活随笔為你收集整理的WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WMI技术介绍和应用——查询文件夹信息
- 下一篇: 如何定制一款12306抢票浏览器——构架