idoru Posted June 18, 2009 Posted June 18, 2009 Hi Guys, I have a script which I'm using to retrive the kind of chassis the machine its running on is. expandcollapse popupDim $strComputer, $strChassis Dim $objWMIService, $objChassis, $colChassis, $objItem $strComputer = "." $objWMIService = ObjGet("winmgmts:" & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2") $colChassis = $objWMIService.ExecQuery ("Select * from Win32_SystemEnclosure","",16) For $objChassis in $colChassis For $objItem in $objChassis.ChassisTypes Select Case $objItem=1 $strChassis = "Maybe Virtual Machine" Case $objItem=2 $strChassis = "??" Case $objItem=3 $strChassis = "Desktop" Case $objItem=4 $strChassis = "Thin Desktop" Case $objItem=5 $strChassis = "Pizza Box" Case $objItem=6 $strChassis = "Mini Tower" Case $objItem=7 $strChassis = "Full Tower" Case $objItem=8 $strChassis = "Portable" Case $objItem=9 $strChassis = "Laptop" Case $objItem=10 $strChassis = "Notebook" Case $objItem=11 $strChassis = "Hand Held" Case $objItem=12 $strChassis = "Docking Station" Case $objItem=13 $strChassis = "All in One" Case $objItem=14 $strChassis = "Sub Notebook" Case $objItem=15 $strChassis = "Space-Saving" Case $objItem=16 $strChassis = "Lunch Box" Case $objItem=17 $strChassis = "Main System Chassis" Case $objItem=18 $strChassis = "Lunch Box" Case $objItem=19 $strChassis = "SubChassis" Case $objItem=20 $strChassis = "Bus Expansion Chassis" Case $objItem=21 $strChassis = "Peripheral Chassis" Case $objItem=22 $strChassis = "Storage Chassis" Case $objItem=23 $strChassis = "Rack Mount Unit" Case $objItem=24 $strChassis = "Sealed-Case PC" EndSelect Next Next MsgBox(0, "Computer chassis type: " , $strChassis) Unfortunatly this doesnt seem to work and errors out with the following C:\Users\Idoru\Desktop\chassis.au3 (16) : ==> The requested action with this object has failed.: $colChassis = $objWMIService.ExecQuery ("Select * from Win32_SystemEnclosure","",16) $colChassis = $objWMIService.ExecQuery ("Select * from Win32_SystemEnclosure","",16)^ ERROR Any ideas whats up?
DjDeep00 Posted June 18, 2009 Posted June 18, 2009 @idoru... Find out what the error is like this... expandcollapse popupGlobal $g_eventerror = 0 ; to be checked to know if com error occurs. Must be reset after handling. $oMyError = ObjEvent("AutoIt.Error","MyErrFunc"); Install a custom error handler Dim $strComputer, $strChassis Dim $objWMIService, $objChassis, $colChassis, $objItem $strComputer = "." $objWMIService = ObjGet("winmgmts:" & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2") $colChassis = $objWMIService.ExecQuery ("Select * from Win32_SystemEnclosure","",16) For $objChassis in $colChassis For $objItem in $objChassis.ChassisTypes Select Case $objItem=1 $strChassis = "Maybe Virtual Machine" Case $objItem=2 $strChassis = "??" Case $objItem=3 $strChassis = "Desktop" Case $objItem=4 $strChassis = "Thin Desktop" Case $objItem=5 $strChassis = "Pizza Box" Case $objItem=6 $strChassis = "Mini Tower" Case $objItem=7 $strChassis = "Full Tower" Case $objItem=8 $strChassis = "Portable" Case $objItem=9 $strChassis = "Laptop" Case $objItem=10 $strChassis = "Notebook" Case $objItem=11 $strChassis = "Hand Held" Case $objItem=12 $strChassis = "Docking Station" Case $objItem=13 $strChassis = "All in One" Case $objItem=14 $strChassis = "Sub Notebook" Case $objItem=15 $strChassis = "Space-Saving" Case $objItem=16 $strChassis = "Lunch Box" Case $objItem=17 $strChassis = "Main System Chassis" Case $objItem=18 $strChassis = "Lunch Box" Case $objItem=19 $strChassis = "SubChassis" Case $objItem=20 $strChassis = "Bus Expansion Chassis" Case $objItem=21 $strChassis = "Peripheral Chassis" Case $objItem=22 $strChassis = "Storage Chassis" Case $objItem=23 $strChassis = "Rack Mount Unit" Case $objItem=24 $strChassis = "Sealed-Case PC" EndSelect Next Next MsgBox(0, "Computer chassis type: " , $strChassis) Func MyErrFunc() $HexNumber = Hex($oMyError.number, 8) MsgBox(4096 + 16, "ERROR", "A COM Error was intercepted!" & @CRLF & @CRLF & _ "err.description is: " & @TAB & $oMyError.description & @CRLF & _ "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _ "err.number is: " & @TAB & $HexNumber & @CRLF & _ "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _ "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _ "err.source is: " & @TAB & $oMyError.source & @CRLF & _ "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _ "err.helpcontext is: " & @TAB & $oMyError.helpcontext _ ) $g_eventerror = 1; something to check for when this function returns Endfunc
rover Posted June 18, 2009 Posted June 18, 2009 $colChassis = $objWMIService.ExecQuery ("Select * from Win32_SystemEnclosure",'WQL',16) I see fascists...
November Posted June 18, 2009 Posted June 18, 2009 (edited) Hi there, expandcollapse popupDim $strComputer, $strChassis Dim $objWMIService, $objChassis, $colChassis, $objItem $wbemFlagReturnImmediately = 0x10 $wbemFlagForwardOnly = 0x20 $strComputer = "." $objWMIService = ObjGet("winmgmts:" & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2") $colChassis = $objWMIService.ExecQuery("SELECT * FROM Win32_SystemEnclosure", "WQL", _ $wbemFlagReturnImmediately + $wbemFlagForwardOnly) For $objChassis in $colChassis For $objItem in $objChassis.ChassisTypes Select Case $objItem=1 $strChassis = "Maybe Virtual Machine" Case $objItem=2 $strChassis = "??" Case $objItem=3 $strChassis = "Desktop" Case $objItem=4 $strChassis = "Thin Desktop" Case $objItem=5 $strChassis = "Pizza Box" Case $objItem=6 $strChassis = "Mini Tower" Case $objItem=7 $strChassis = "Full Tower" Case $objItem=8 $strChassis = "Portable" Case $objItem=9 $strChassis = "Laptop" Case $objItem=10 $strChassis = "Notebook" Case $objItem=11 $strChassis = "Hand Held" Case $objItem=12 $strChassis = "Docking Station" Case $objItem=13 $strChassis = "All in One" Case $objItem=14 $strChassis = "Sub Notebook" Case $objItem=15 $strChassis = "Space-Saving" Case $objItem=16 $strChassis = "Lunch Box" Case $objItem=17 $strChassis = "Main System Chassis" Case $objItem=18 $strChassis = "Lunch Box" Case $objItem=19 $strChassis = "SubChassis" Case $objItem=20 $strChassis = "Bus Expansion Chassis" Case $objItem=21 $strChassis = "Peripheral Chassis" Case $objItem=22 $strChassis = "Storage Chassis" Case $objItem=23 $strChassis = "Rack Mount Unit" Case $objItem=24 $strChassis = "Sealed-Case PC" EndSelect Next Next MsgBox(0, "Computer chassis type: " , $strChassis) Vista x32 tested! Cheers Edited June 18, 2009 by November Old Scriptology Visual Ping 1.8 - Mass Ping Program with export to txt delimited. Desktop 2 RGB and YMCK - Pick a color in the desktop and get the RGB and YMCK code. Desktop 2 RGB - Pick a color in the desktop and get the RGB code. ShootIT 1.0 - Screen Capture full and partial screen [font="'Arial Black';"]Remember Remember The Fifth of November.[/font]
idoru Posted June 18, 2009 Author Posted June 18, 2009 Hi DJ I get the error as shown in these screen shots. and I should mention that I have a vbs version of this that works fine
idoru Posted June 18, 2009 Author Posted June 18, 2009 Thanks to Rover for his fix!! Also thanks to November and DJ!
Inverted Posted June 18, 2009 Posted June 18, 2009 (edited) Haha, weird, didn't know about this. I guess the motherboard reports its factory-default chassis. Edited June 18, 2009 by Inverted
November Posted June 18, 2009 Posted June 18, 2009 (almost) All hardware info is "licked" by windows. Then only do a simple WSQL query. Watch out with different windows versions... not all classes are available. look up for scriptomatic in forum. Cheers Old Scriptology Visual Ping 1.8 - Mass Ping Program with export to txt delimited. Desktop 2 RGB and YMCK - Pick a color in the desktop and get the RGB and YMCK code. Desktop 2 RGB - Pick a color in the desktop and get the RGB code. ShootIT 1.0 - Screen Capture full and partial screen [font="'Arial Black';"]Remember Remember The Fifth of November.[/font]
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now