Win32_LogicalDisk類別

Win32_LogicalDisk WMI 類別代表數據源,該數據源會解析為執行 Windows 之電腦系統上的實際本機儲存裝置。

下列語法已經過受管理物件格式 (MOF) 程式碼簡化,並包含所有已繼承的屬性。 屬性會依字母順序,而非MOF順序。

語法

[Dynamic, Provider("CIMWin32"), SupportsUpdate, UUID("{8502C4B7-5FBB-11D2-AAC1-006008C78BC7}"), AMENDMENT]
class Win32_LogicalDisk : CIM_LogicalDisk
{
  uint16   Access;
  uint16   Availability;
  uint64   BlockSize;
  string   Caption;
  boolean  Compressed;
  uint32   ConfigManagerErrorCode;
  boolean  ConfigManagerUserConfig;
  string   CreationClassName;
  string   Description;
  string   DeviceID;
  uint32   DriveType;
  boolean  ErrorCleared;
  string   ErrorDescription;
  string   ErrorMethodology;
  string   FileSystem;
  uint64   FreeSpace;
  datetime InstallDate;
  uint32   LastErrorCode;
  uint32   MaximumComponentLength;
  uint32   MediaType;
  string   Name;
  uint64   NumberOfBlocks;
  string   PNPDeviceID;
  uint16   PowerManagementCapabilities[];
  boolean  PowerManagementSupported;
  string   ProviderName;
  string   Purpose;
  boolean  QuotasDisabled;
  boolean  QuotasIncomplete;
  boolean  QuotasRebuilding;
  uint64   Size;
  string   Status;
  uint16   StatusInfo;
  boolean  SupportsDiskQuotas;
  boolean  SupportsFileBasedCompression;
  string   SystemCreationClassName;
  string   SystemName;
  boolean  VolumeDirty;
  string   VolumeName;
  string   VolumeSerialNumber;
};

成員

Win32_LogicalDisk類別具有下列類型的成員:

方法

Win32_LogicalDisk 類別具有這些方法。

方法 描述
Chkdsk 叫用 磁碟上的 Chkdsk 作業。
ExcludeFromAutochk 從下一次重新啟動時要執行的 Chkdsk 作業排除磁碟
重設 未實作。 如需如何實作此方法的詳細資訊,請參閱 檔中的 reset 方法CIM_LogicalDisk
ScheduleAutoChk 如果已設定臟位,排程下一次重新啟動時要執行的Chkdsk
SetPowerState 未實作。 如需如何實作此方法的詳細資訊,請參閱 CIM_LogicalDisk中的 SetPowerState 方法。

屬性

Win32_LogicalDisk類別具有這些屬性。

存取權限

數據類型: uint16

存取類型:唯讀

可用的媒體存取類型。

此屬性繼承自 CIM_儲存體 Extent

未知 (0)

讀 (1)

寫入 (2)

可寫入

支援 讀取/寫入 (3)

寫入一次 (4)

可用性

數據類型: uint16

存取類型:唯讀

限定符: MappingStrings (“MIF.DMTF|Operational State|003.5“, ”MIB.IETF|HOST-RESOURCES-MIB.hrDeviceStatus“)

裝置的可用性和狀態。

此屬性繼承自 CIM_LogicalDevice

其他 (1)

未知 (2)

執行/完整電源 (3)

執行或完整電源

警告 (4)

測試中 (5)

不適用 (6)

電源關閉 (7)

離線 (8)

離線

下班 (9)

降級 (10)

未安裝 (11)

安裝錯誤 (12)

省電 - 未知 (13)

已知裝置處於省電模式,但其確切狀態不明。

省電 - 低電量模式 (14)

裝置處於省電狀態,但仍可正常運作,且效能可能會降低。

省電 - 待命 (15)

裝置無法正常運作,但可快速提供全電源。

電源週期 (16)

省電 - 警告 (17)

裝置處於警告狀態,但也處於省電模式。

暫停 (18)

裝置已暫停。

未就緒 (19)

裝置尚未就緒。

未設定 (20)

未設定裝置。

靜止 (21)

裝置很安靜。

BlockSize

數據類型: uint64

存取類型:唯讀

限定符:MappingStrings (“MIB.IETF|HOST-RESOURCES-MIB.hr儲存體 AllocationUnits“),Units (”bytes“)

大小,以位元組為單位,構成此儲存範圍的區塊。 如果未知或區塊概念無效(例如,匯總範圍、記憶體或邏輯磁碟),請輸入 1。

此屬性繼承自 CIM_儲存體 Extent

如需在腳本中使用 uint64 值的詳細資訊,請參閱 WMI 中的腳本。

標題

數據類型: 字串

存取類型:唯讀

限定符: MaxLen (64), DisplayName (“Caption”)

對象簡短描述一行字串。

此屬性繼承自 CIM_ManagedSystemElement

Compressed

數據類型: 布爾值

存取類型:唯讀

限定符: MappingStrings (“Win32API|文件系統函式|GetVolumeInformation|FS_VOL_IS_COMPRESSED“)

如果 為 True,邏輯磁碟區會以單一壓縮實體的形式存在,例如 DoubleSpace 磁碟區。 如果支援以檔案為基礎的壓縮,例如在NTFS上,則此屬性為 False

ConfigManagerErrorCode

數據類型: uint32

存取類型:唯讀

限定符: 架構 (“Win32”)

Windows Configuration Manager 錯誤碼。

此屬性繼承自 CIM_LogicalDevice

此裝置正常運作。 (0)

裝置正常運作。

此裝置未正確設定。 (1)

裝置未正確設定。

Windows 無法載入此裝置的驅動程式。 (2)

此裝置的驅動程式可能已損毀,或您的系統可能在記憶體或其他資源上執行不足。 (3)

此裝置的驅動程式可能已損毀,或系統可能記憶體不足或其他資源。

此裝置無法正常運作。其中一個驅動程式或登錄可能已損毀。 (4)

裝置無法正常運作。 其中一個驅動程式或登錄可能已損毀。

此裝置的驅動程式需要 Windows 無法管理的資源。 (5)

裝置的驅動程式需要 Windows 無法管理的資源。

此裝置的開機設定與其他裝置衝突。 (6)

裝置的開機設定與其他裝置衝突。

無法篩選。 (7)

遺失裝置的驅動程式載入器。 (8)

遺失裝置的驅動程式載入器。

此裝置無法正常運作,因為控制韌體回報裝置的資源不正確。 (9)

裝置無法正常運作。 控制韌體錯誤地報告裝置的資源。

此裝置無法啟動。 (10)

裝置無法啟動。

此裝置失敗。 (11)

裝置失敗。

此裝置找不到足夠的可用資源可供其使用。 (12)

裝置找不到足夠的可用資源可供使用。

Windows 無法驗證此裝置的資源。 (13)

Windows 無法驗證裝置資源。

在您重新開機電腦之前,此裝置無法正常運作。 (14)

在電腦重新開機之前,裝置無法正常運作。

此裝置無法正常運作,因為可能有重新列舉的問題。 (15)

裝置因可能重新列舉問題而無法正常運作。

Windows 無法識別此裝置使用的所有資源。 (16)

Windows 無法識別裝置使用的所有資源。

此裝置要求未知的資源類型。 (17)

裝置要求未知的資源類型。

重新安裝此裝置的驅動程式。 (18)

必須重新安裝設備磁碟機。

使用 VxD 載入器失敗。 (19)

您的登錄可能已損毀。 (20)

登錄可能已損毀。

系統失敗:請嘗試變更此裝置的驅動程式。如果無法運作,請參閱您的硬體檔。Windows 正在移除此裝置。 (21)

系統失敗。 如果變更設備磁碟機無效,請參閱硬體檔。 Windows 正在移除裝置。

此裝置已停用。 (22)

裝置已停用。

系統失敗:請嘗試變更此裝置的驅動程式。如果無法運作,請參閱您的硬體檔。 (23)

系統失敗。 如果變更設備磁碟機無效,請參閱硬體檔。

此裝置不存在、無法正常運作,或未安裝其所有驅動程式。 (24)

裝置不存在、無法正常運作,或未安裝其所有驅動程式。

Windows 仍在設定此裝置。 (25)

Windows 仍在設定裝置。

Windows 仍在設定此裝置。 (26)

Windows 仍在設定裝置。

此裝置沒有有效的記錄設定。 (27)

裝置沒有有效的記錄設定。

未安裝此裝置的驅動程式。 (28)

未安裝設備磁碟機。

此裝置已停用,因為裝置的韌體未提供所需的資源。 (29)

裝置已停用。 裝置韌體未提供所需的資源。

此裝置使用另一個裝置所使用的插斷要求 (IRQ) 資源。 (30)

裝置使用另一個裝置正在使用的 IRQ 資源。

此裝置無法正常運作,因為 Windows 無法載入此裝置所需的驅動程式。 (31)

裝置無法正常運作。 Windows 無法載入必要的設備磁碟機。

ConfigManagerUserConfig

資料類型: 布林值

存取類型:唯讀

限定詞: 架構 (「Win32」)

如果 為 True ,裝置會使用使用者定義的組態。

此屬性繼承自 CIM_LogicalDevice

CreationClassName

資料類型: 字串

存取類型:唯讀

限定詞: CIM_Key

要出現在實例建立時所用繼承鏈結中之第一個具體類別的名稱。 與 類別的其他索引鍵屬性搭配使用時,屬性允許唯一識別此類別及其子類別的所有實例。

此屬性繼承自 CIM_LogicalDevice

說明

資料類型: 字串

存取類型:唯讀

限定詞: DisplayName (「Description」)

物件的描述。

此屬性繼承自 CIM_ManagedSystemElement

DeviceID

資料類型: 字串

存取類型:唯讀

限定詞: 索引鍵 覆寫 (「DeviceId」), MappingStrings (「WMI」)

系統上其他裝置之邏輯磁片的唯一識別碼。

此屬性繼承自 CIM_LogicalDevice

如需擷取此屬性的程式碼範例,請參閱下方的一節。

DriveType

資料類型: uint32

存取類型:唯讀

限定詞: MappingStrings (「Win32API|FileFunctions|GetDriveType「)

這個邏輯磁片所代表之磁片磁碟機類型的數值。

未知 (0)

無根目錄 (1)

卸載式磁片 (2)

本機磁片 (3)

網路磁碟機 機 (4)

光碟 (5)

RAM 磁碟 (6)

ErrorCleared

資料類型: 布林值

存取類型:唯讀

如果 為 True ,則會清除 LastErrorCode 報告的錯誤。

此屬性繼承自 CIM_LogicalDevice

ErrorDescription

資料類型: 字串

存取類型:唯讀

有關 LastErrorCode 記錄之錯誤的詳細資訊,以及可能採取之任何更正動作的資訊。

此屬性繼承自 CIM_LogicalDevice

ErrorMethodology

資料類型: 字串

存取類型:唯讀

此儲存範圍所支援的錯誤偵測和更正類型。

此屬性繼承自 CIM_儲存體Extent

資料類型: 字串

存取類型:唯讀

限定詞: MappingStrings (「Win32API|檔案系統函 式 GetVolumeInformation

邏輯磁片上的檔案系統。

範例:「NTFS」

FreeSpace

資料類型: uint64

存取類型:唯讀

限定詞: 單位 (「bytes」)

邏輯磁片上可用的空間,以位元組為單位。

此屬性繼承自 CIM_LogicalDisk

如需在腳本中使用 uint64 值的詳細資訊,請參閱 WMI 中的腳本。

InstallDate

數據類型: datetime

存取類型:唯讀

限定符: MappingStrings (“MIF.DMTF|ComponentID|001.5“), DisplayName (”安裝日期“)

安裝物件的日期和時間。 這個屬性不需要值來指出對象已安裝。

此屬性繼承自 CIM_ManagedSystemElement

LastErrorCode

數據類型: uint32

存取類型:唯讀

邏輯裝置回報的最後一個錯誤碼。

此屬性繼承自 CIM_LogicalDevice

MaximumComponentLength

數據類型: uint32

存取類型:唯讀

限定符:MappingStrings (“Win32API|文件系統函式 GetVolumeInformation

Windows 磁碟驅動器所支援的檔名元件長度上限。 檔名元件是反斜杠之間檔名的一部分。 值可用來指出指定的檔案系統支持長名稱。 例如,對於支持長名稱的 FAT 檔案系統,函式會儲存值 255,而不是先前的 8.3 指標。 使用 NTFS 檔案系統的系統上也可以支援長名稱。

範例:255

MediaType

數據類型: uint32

存取類型:唯讀

限定符: MappingStrings (“Win32API|裝置輸入和輸出函式 |DeviceIoControl“)

目前存在於邏輯磁碟驅動器中的媒體類型。 此值將是 Winioctl.h 中定義的MEDIA_TYPE列舉值之一。 如果磁碟驅動器中目前沒有媒體,則卸除式磁碟驅動器的值可能並不精確。

格式未知 (0)

5 英吋軟盤 (1)

5 1/4 英吋軟盤 - 1.2 MB - 512 位元組/扇區

3 英吋軟盤 (2)

3 1/2 英吋軟盤 - 1.44 MB -512 位元組/扇區

3 英吋軟盤 (3)

3 1/2 英吋軟盤 - 2.88 MB - 512 位元組/扇區

3 英吋軟盤 (4)

3 1/2 英吋軟盤 - 20.8 MB - 512 位元組/扇區

3 英吋軟盤 (5)

3 1/2 英吋軟盤 - 720 KB - 512 位元組/扇區

5 英吋軟盤 (6)

5 1/4 英吋軟盤 - 360 KB - 512 位元組/扇區

5 英吋軟盤 (7)

5 1/4 英吋軟盤 - 320 KB - 512 位元組/扇區

5 英吋軟盤 (8)

5 1/4 英吋軟盤 - 320 KB - 1024 位元組/扇區

5 英吋軟盤 (9)

5 1/4 英吋軟盤 - 180 KB - 512 位元組/扇區

5 英吋軟盤 (10)

5 1/4 英吋軟盤 - 160 KB - 512 位元組/扇區

軟盤 以外的抽取式媒體 (11)

固定硬碟媒體 (12)

3 英吋軟盤 (13)

3 1/2 英吋軟盤 - 120 MB - 512 位元組/扇區

3 英吋軟盤 (14)

3 1/2 英吋軟盤 - 640 KB - 512 位元組/扇區

5 英吋軟盤 (15)

5 1/4 英吋軟盤 - 640 KB - 512 位元組/扇區

5 英吋軟盤 (16)

5 1/4 英吋軟盤 - 720 KB - 512 位元組/扇區

3 英吋軟盤 (17)

3 1/2 英吋軟盤 - 1.2 MB - 512 位元組/扇區

3 英吋軟盤 (18)

3 1/2 英吋軟盤 - 1.23 MB - 1024 位元組/扇區

5 英吋軟盤 (19)

5 1/4 英吋軟盤 - 1.23 MB - 1024 位元組/扇區

3 英吋軟盤 (20)

3 1/2 英吋軟盤 - 128 MB - 512 位元組/扇區

3 英吋軟盤 (21)

3 1/2 英吋軟盤 - 230 MB - 512 位元組/扇區

8 英吋軟盤 (22)

8 英吋軟盤 - 256 KB - 128 位元組/扇區

名稱

數據類型: 字串

存取類型:唯讀

限定符: DisplayName (“Name”)

標記,物件為已知。 子類別化時,這個屬性可以覆寫為索引鍵屬性。

此屬性繼承自 CIM_ManagedSystemElement

NumberOfBlocks

數據類型: uint64

存取類型:唯讀

限定符:MappingStrings (“MIB.IETF|HOST-RESOURCES-MIB.hr儲存體 Size“)

連續區塊總數,每個區塊大小都包含在 BlockSize 屬性中,形成此儲存範圍。 儲存範圍的總大小可藉由將 BlockSize 屬性的值乘以此屬性的值來計算。 如果 BlockSize 的值是 1,則此屬性是儲存範圍的總大小。

此屬性繼承自 CIM_儲存體 Extent

如需在腳本中使用 uint64 值的詳細資訊,請參閱 WMI 中的腳本。

PNPDeviceID

數據類型: 字串

存取類型:唯讀

限定符: 架構 (“Win32”)

Windows 隨插即用 邏輯裝置的裝置標識碼。

此屬性繼承自 CIM_LogicalDevice

範例:“*PNP030b”

PowerManagementCapabilities

數據類型: uint16 陣列

存取類型:唯讀

邏輯裝置的特定電源相關功能陣列。

此屬性繼承自 CIM_LogicalDevice

未知 (0)

不支援 (1)

已停用 (2)

已開啟 (3)

電源管理功能目前已啟用,但確切的功能集未知或信息無法使用。

自動 輸入的省電模式 (4)

裝置可以根據使用量或其他準則變更其電源狀態。

Power State Settable (5)

支援 SetPowerState 方法。 這個方法位於父 CIM_LogicalDevice 類別上,而且可以實作。 如需詳細資訊,請參閱 設計 Managed 物件格式 (MOF) 類別

支援 電源迴圈 (6)

您可以叫用 SetPowerState 方法,並將 PowerState 參數設定為 5 (Power Cycle)。

支援的 計時電源 (7)

支援的計時電源

您可以叫用 SetPowerState 方法,並將 PowerState 參數設定為 5(Power Cycle),並將時間設定為特定日期和時間,或開啟電源的間隔。

PowerManagementSupported

數據類型: 布爾值

存取類型:唯讀

如果 為 True,則裝置可以受電源管理(可以進入暫停模式等等)。 此屬性不會指出電源管理功能目前已啟用,只有邏輯裝置能夠進行電源管理。

此屬性繼承自 CIM_LogicalDevice

ProviderName

數據類型: 字串

存取類型:唯讀

限定符:MappingStrings (“Win32API|Windows 網路功能 |WNetGet 連線 ion“)

邏輯裝置的網路路徑。

用途

數據類型: 字串

存取類型:唯讀

描述媒體及其使用的自由格式字串。

此屬性繼承自 CIM_儲存體 Extent

QuotasDisabled

數據類型: 布爾值

存取類型:唯讀

表示此系統上未啟用配額管理(TRUE)。

QuotasIncomplete

數據類型: 布爾值

存取類型:唯讀

表示已使用配額管理,但已停用 (True)。 不完整是指在停用配額管理之後,文件系統中留下的資訊。

QuotasRebuilding

數據類型: 布爾值

存取類型:唯讀

如果 為 True,表示文件系統處於編譯資訊的作用中程式,並設定磁碟以進行配額管理。

大小

數據類型: uint64

存取類型:唯讀

限定符: 單位 (“bytes”)

磁碟驅動器的大小。

此屬性繼承自 CIM_LogicalDisk

如需擷取此屬性的程式代碼範例,請參閱下方的一節。

狀態

數據類型: 字串

存取類型:唯讀

限定符: MaxLen (10), DisplayName (“Status”)

物件的目前狀態。 您可以定義各種操作和非操作狀態。 作業狀態包括:「OK」、「已降級」和「Pred Fail」(智慧型硬碟等元素可能正常運作,但預測近期失敗)。 非操作狀態包括:“Error”、“Starting”、“Stopping” 和 “Service”。 後者「服務」可以在磁碟的鏡像重新Silvering、重載用戶權力清單或其他系統管理工作期間套用。 並非所有這類工作都在在線,但 Managed 元素既不是「確定」,也不是在其他其中一個狀態。

此屬性繼承自 CIM_ManagedSystemElement

包括下列值:

確定 (“OK”)

錯誤 (「錯誤」

已降級 (「已降級」

未知 (“未知”)

Pred Fail (“Pred Fail”)

啟動 (“開始”)

停止 (“停止”)

服務 (“Service”)

壓力(“壓力”)

NonRecover (“NonRecover”)

無連絡人 (“無聯繫人”)

Lost Comm (“Lost Comm”)

StatusInfo

數據類型: uint16

存取類型:唯讀

限定符: MappingStrings (“MIF.DMTF|操作狀態|003.3“)

邏輯裝置的狀態。 如果此屬性不適用於邏輯裝置,則應該使用值 5 (不適用)。

此屬性繼承自 CIM_LogicalDevice

其他 (1)

未知 (2)

已開啟 (3)

已停用 (4)

不適用 (5)

SupportsDiskQuotas

數據類型: 布爾值

存取類型:唯讀

如果 為 True,此磁碟區支援磁碟配額。

SupportsFileBasedCompression

數據類型: 布爾值

存取類型:唯讀

限定符: MappingStrings (“Win32API|文件系統函式|GetVolumeInformation|FS_FILE_COMPRESSION“)

如果 為 True,邏輯磁碟分區支援以檔案為基礎的壓縮,例如 NTFS 檔系統的情況。 當 Compressed 屬性為 True 時,此屬性為 False

SystemCreationClassName

數據類型: 字串

存取類型:唯讀

限定符:傳播 (“CIM_System.CreationClassName“),CIM_Key

計算機 CreationClassName 屬性的範圍值。

此屬性繼承自 CIM_LogicalDevice

SystemName

數據類型: 字串

存取類型:唯讀

限定符:傳播 (“CIM_System.名稱CIM_Key

範圍系統的名稱。

此屬性繼承自 CIM_LogicalDevice

VolumeDirty

數據類型: 布爾值

存取類型:唯讀

限定符: MappingStrings (“FSCTL_IS_VOLUME_DIRTY”)

如果 為 True,磁碟需要在 下次重新啟動時執行 ChkDsk 。 這個屬性只適用於代表機器中實體磁碟的邏輯磁碟實例。 它不適用於對應的邏輯磁碟驅動器。

VolumeName

數據類型: 字串

存取類型:讀取/寫入

限定符:MappingStrings (“Win32API|文件系統函式 GetVolumeInformation

邏輯磁碟的磁碟區名稱。

條件約束:最多 32 個字元。

如需擷取此屬性的程式代碼範例,請參閱下方的一節。

VolumeSerialNumber

數據類型: 字串

存取類型:唯讀

限定符:MappingStrings (“Win32API|文件系統函式 GetVolumeInformation

邏輯磁碟的磁碟區序號。

條件約束:最多 11 個字元。

範例:“A8C3-D032”

備註

Win32_LogicalDisk類別衍生自衍生自 CIM_儲存體 Extent 的CIM_LogicalDisk。 CIM_儲存體 Extent 類別衍生自 CIM_LogicalDevice

實體磁碟驅動器是任何記憶體管理系統的基石。 不過,安裝實體磁碟驅動器之後,用戶和系統管理員通常都不會直接處理硬體。 相反地,用戶和系統管理員都會與磁碟上建立的邏輯磁碟驅動器互動。

邏輯磁碟驅動器是已指派自有驅動器號之分割區的細分。 (可以有尚未指派驅動器號的分割區。當您談論磁碟驅動器 C 或磁碟驅動器 D 時,指的是邏輯磁碟驅動器,而不是實體磁碟驅動器。 同樣地,當您將檔案儲存到磁碟驅動器 E 時,您會將其儲存至邏輯磁碟驅動器。 實體磁碟會組成組成磁碟驅動器的硬體,包括前端、扇區和圓柱體等元件。 相較之下,邏輯磁碟驅動器具有如磁碟空間、可用磁碟空間和驅動器號等屬性。

注意

Win32_LogicalDisk 類別只能用來列舉本機磁碟驅動器的屬性。 不過,您可以使用 Win32_MappedLogicalDisk 類別來列舉對應網路驅動器機的屬性。

範例

您可以在WMI工作:磁碟和文件系統主題中使用 Win32_LogicalDisk 來尋找其他範例,以取得磁碟或磁碟區數據。

企業腳本通常牽涉到在遠端電腦上設定硬體和軟體;接著,這需要您事先知道計算機上安裝的磁碟驅動器類型。 例如,只有在磁碟驅動器 E 是硬碟時,才能在磁碟驅動器 E 上安裝應用程式的腳本。 如果磁碟驅動器 E 碰巧代表軟碟或 CD-ROM 磁碟驅動器,腳本就會失敗。 下列程式代碼會識別電腦上安裝的磁碟驅動器和磁碟驅動器類型

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery ("SELECT * FROM Win32_LogicalDisk")
For Each objDisk in colDisks
 Wscript.Echo "DeviceID: "& objDisk.DeviceID 
 Select Case objDisk.DriveType
 Case 1
 Wscript.Echo "No root directory."
 Case 2
 Wscript.Echo "DriveType: Removable drive."
 Case 3
 Wscript.Echo "DriveType: Local hard disk."
 Case 4
 Wscript.Echo "DriveType: Network disk." 
 Case 5
 Wscript.Echo "DriveType: Compact disk." 
 Case 6
 Wscript.Echo "DriveType: RAM disk." 
 Case Else
 Wscript.Echo "Drive type could not be determined."
 End Select
Next

//be sure to References->Add->System.Management to your project
using System.Management;
...
{
   string strComputer = ".";
            
   ManagementScope namespaceScope = new ManagementScope("\\\\" + strComputer + "\\ROOT\\CIMV2");
   ObjectQuery diskQuery = new ObjectQuery("SELECT * FROM Win32_LogicalDisk");
   ManagementObjectSearcher mgmtObjSearcher = new ManagementObjectSearcher(namespaceScope, diskQuery);
   ManagementObjectCollection colDisks = mgmtObjSearcher.Get();

   foreach (ManagementObject objDisk in colDisks)
   {
      Console.WriteLine("Device ID : {0}", objDisk["DeviceID"]);
                
      switch ((uint)(objDisk["DriveType"]))
      {
         case 1: {   Console.WriteLine("No root directory.");
                     break;}
         case 2: {   Console.WriteLine("DriveType: Removable drive."); 
                     break;}
         case 3: {   Console.WriteLine("DriveType: Local hard disk.");
                     break;}
         case 4: {   Console.WriteLine("DriveType: Network disk.");
                     break;}
         case 5: {   Console.WriteLine("DriveType: Compact disk.");
                     break;}
         case 6: {   Console.WriteLine("DriveType: RAM disk.");
                     break;}
         default: {  Console.WriteLine("Drive type could not be determined.");
                     break;}
      }
      //Readline is in here so the user can see the result before the code exists
      Console.ReadLine();
   }
}

下列範例會列舉計算機上所有硬碟上的可用空間。

Const HARD_DISK = 3
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery ("SELECT * FROM Win32_LogicalDisk WHERE DriveType = " & HARD_DISK & "")
For Each objDisk in colDisks
 Wscript.Echo "Device ID: " & objDisk.DeviceID 
 Wscript.Echo "Free Disk Space: " & objDisk.FreeSpace
Next

//be sure to References->Add->System.Management to your project
using System.Management;
...

const int HARD_DISK = 3;
string strComputer = ".";

ManagementScope namespaceScope = new ManagementScope("\\\\" + strComputer + "\\ROOT\\CIMV2");
ObjectQuery diskQuery = new ObjectQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType = " + HARD_DISK + "");
ManagementObjectSearcher mgmtObjSearcher = new ManagementObjectSearcher(namespaceScope, diskQuery);
ManagementObjectCollection colDisks = mgmtObjSearcher.Get();

foreach (ManagementObject objDisk in colDisks)
{
    Console.WriteLine("Device ID : {0}", objDisk["DeviceID"]);
    Console.WriteLine("Free Disk Space : {0}", objDisk["FreeSpace"]);
    Console.ReadLine();
}

下列程式代碼範例會傳回計算機上每部磁碟驅動器上所使用的檔系統類型(FAT、NTFS、FAT32 等等)。

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\Root\CIMv2")
Set colDisks = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk")
For Each objDisk in colDisks
    Wscript.Echo "DeviceID: "& vbTab &  objDisk.DeviceID  
    Wscript.Echo "File System: "& vbTab & objDisk.FileSystem
Next

Get-WMIObject Win32_LogicalDisk | Select DeviceID, FileSystem | Format=Table -AutoSize

下列 PowerShell 程式代碼範例會擷取邏輯本機磁碟的其他資訊。

Write-Host "Drive information for $env:ComputerName"

Get-WmiObject -Class Win32_LogicalDisk |
    Where-Object {$_.DriveType -ne 5} |
    Sort-Object -Property Name | 
    Select-Object Name, VolumeName, FileSystem, Description, VolumeDirty, `
        @{"Label"="DiskSize(GB)";"Expression"={"{0:N}" -f ($_.Size/1GB) -as [float]}}, `
        @{"Label"="FreeSpace(GB)";"Expression"={"{0:N}" -f ($_.FreeSpace/1GB) -as [float]}}, `
        @{"Label"="%Free";"Expression"={"{0:N}" -f ($_.FreeSpace/$_.Size*100) -as [float]}} |
    Format-Table -AutoSize

需求

需求
最低支援的用戶端
Windows Vista
最低支援的伺服器
Windows Server 2008
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

另請參閱

CIM_LogicalDisk

計算機系統硬體類別

WMI 工作:磁碟和文件系統