透過 WMI (Windows Management Instrumentation) 查詢 Win32_SystemEnclosure 類的 ChassisTypes 屬性,可獲取電腦機殼類型代碼(如筆電、台式機、伺服器等)。
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colChassis = objWMIService.ExecQuery("Select * from Win32_SystemEnclosure")
For Each objChassis In colChassis
For Each strChassisType In objChassis.ChassisTypes
WScript.Echo strChassisType ' 輸出數字代碼
Next
Next
輸出為數字(如 10 代表 Notebook),需對照對照表解讀。
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colChassis = objWMIService.ExecQuery("Select * from Win32_SystemEnclosure")
For Each objChassis In colChassis
For Each strChassisType In objChassis.ChassisTypes
Select Case strChassisType
Case 1 : WScript.Echo "Other"
Case 2 : WScript.Echo "Unknown"
Case 3 : WScript.Echo "Desktop"
Case 4 : WScript.Echo "Low Profile Desktop"
Case 5 : WScript.Echo "Pizza Box"
Case 6 : WScript.Echo "Mini Tower"
Case 7 : WScript.Echo "Tower"
Case 8 : WScript.Echo "Portable"
Case 9 : WScript.Echo "Laptop"
Case 10 : WScript.Echo "Notebook"
Case 11 : WScript.Echo "Handheld"
Case 12 : WScript.Echo "Docking Station"
Case 13 : WScript.Echo "All-in-One"
Case 14 : WScript.Echo "Sub-Notebook"
Case 15 : WScript.Echo "Space Saving"
Case 16 : WScript.Echo "Lunch Box"
Case 17 : WScript.Echo "Main System Chassis"
Case 18 : WScript.Echo "Expansion Chassis"
Case 19 : WScript.Echo "Sub-Chassis"
Case 20 : WScript.Echo "Bus Expansion Chassis"
Case 21 : WScript.Echo "Peripheral Chassis"
Case 22 : WScript.Echo "Storage Chassis"
Case 23 : WScript.Echo "Rack Mount Chassis"
Case 24 : WScript.Echo "Sealed-Case PC"
Case Else: WScript.Echo "Unknown (" & strChassisType & ")"
End Select
Next
Next
ChassisTypes 為數組,單台電腦可能返回多個值(如底座+筆電)。Get-CimInstance Win32_SystemEnclosure |
Select-Object -ExpandProperty ChassisTypes |
ForEach-Object {
switch ($_){
3 {"Desktop"}; 9 {"Laptop"}; 10 {"Notebook"};
default {"Type $_"}
}
}
WMI 提供標準化硬體查詢接口,ChassisTypes 雖為數字代碼,但配合對照表即可輕鬆識別設備形態。VBScript 適合舊系統維護,新專案建議使用 PowerShell 或 C# (System.Management)。