WMI (Windows Management Instrumentation) 是 Windows 核心管理技術,WQL (WMI Query Language) 類 SQL 查詢語言,配合 System.Management 命名空間,可在 .NET 中輕鬆獲取 CPU、磁碟、網卡、共享資料夾等系統資訊。
注意:MSAcpi_ThermalZoneTemperature 僅筆記本 ACPI 熱區支援;Win32_TemperatureProbe 需主機板廠商開放 SMBIOS,多數不支援。Win32_Processor 可靠獲取 ProcessorId。
private void GetCPUTemperature() {
double temp = 0;
var mos = new ManagementObjectSearcher(@"root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature");
foreach (ManagementObject mo in mos.Get()) {
temp = (Convert.ToDouble(mo["CurrentTemperature"].ToString()) - 2732) / 10; // 單位:十分之一度,轉攝氏
label1.Text = $"CPU溫度:{temp}°C";
}
}
private void GetCPUCode() {
var mos = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
foreach (ManagementObject mo in mos.Get())
label1.Text += mo["ProcessorId"].ToString();
}
SELECT 開頭,支援 * 或具體屬性FROM 後接 WMI 類名WHERE 條件,如 WHERE DriveType=3常用範例:
SELECT * FROM Win32_LogicalDisk WHERE DriveType=3 -- 所有硬碟分區 SELECT * FROM Win32_Share -- 所有共享目錄 SELECT * FROM Win32_NetworkAdapterConfiguration WHERE DHCPEnabled=TRUE SELECT Description FROM Win32_Account WHERE Name='Administrator' SELECT FreeSpace, DeviceID FROM Win32_LogicalDisk
wbemtest → 連線 → 命名空間改為 root\cimv2












範例:查詢物理磁碟 SELECT * FROM Win32_DiskDrive,再依屬性深入分析。
掌握 WQL 與 wbemtest,讓 .NET 系統管理開發事半功倍。