首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WMI 與 WQL 入門實戰:硬體資訊查詢、wbemtest 工具與常用 Win32 類完整指南

     編輯:關於.NET

WMI (Windows Management Instrumentation) 是 Windows 核心管理技術,WQL (WMI Query Language) 類 SQL 查詢語言,配合 System.Management 命名空間,可在 .NET 中輕鬆獲取 CPU、磁碟、網卡、共享資料夾等系統資訊。

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();
}

WQL 語法核心規則

  • 以 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.exe 圖形化探索工具 (XP/2003 內建)

  1. 執行 wbemtest → 連線 → 命名空間改為 root\cimv2
  2. 「列舉類別」遞歸列出所有類,雙擊查看屬性/方法/MOF 定義
  3. 「查詢」直接執行 WQL 並顯示結果實例

wbemtest 連線

主界面

連線對話框

執行查詢

命名空間錯誤

修正命名空間

列舉類別

類別列表

查詢結果

實例屬性

MOF 定義

MOF 內容

常用 Win32 類速查表

Win32 常用類表格

範例:查詢物理磁碟 SELECT * FROM Win32_DiskDrive,再依屬性深入分析。

掌握 WQL 與 wbemtest,讓 .NET 系統管理開發事半功倍。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved