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
但您并不必每次檢查計算機類型時都參考 SDK。以下經過擴展的腳本使用一個 Select Case 語句,它可將這些整數轉換為更有意義的內容:
復制代碼 代碼如下:
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" End Select Next Next
在您提問以前,不,我們并不知道這些大多數計算機類型是什么,也不知道便攜式計算機、膝上型計算機以及筆記本計算機之間有什么區別。我們也不知道 ChassisTypes 屬性為什么存儲為數組。那是否意味著一臺計算機可以有多種計算機類型?不要問我們,我們也不知道。讓我們喘口氣吧:畢竟我們只是 Microsoft Scripting Guy,可不是 Microsoft Hardware Guy