Mayby many way to do. Example with kixtart (KixTart 4.51). Just copy lines and save it with name somename.kix and call like: kix32.exe somename.kix Edit script with your models, pls look at "select case... endselect" Break On Function WMIQuery($sWhat, $sFrom, Optional $sComputer, Optional $sWhere, Optional $x, Optional $root) Dim $sQuery, $objEnum, $sValue, $sItem, $TMP If NOT $sComputer $sComputer=@WKSTA EndIf If InStr($sComputer,'\') $sComputer=Right($sComputer,InStrRev($sComputer,'\')) EndIf If NOT $root $root="\root\cimv2" EndIf $sQuery = "Select " + $sWhat + " From "+ $sFrom If $sWhere AND $x $sQuery = $sQuery+" Where "+$sWhere+" = '"+$x+"'" EndIf $SystemSet = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"+$sComputer+$root) If @ERROR Exit Val("&"+Right(DecToHex(@ERROR),4)) Return EndIf $objEnum = $SystemSet.ExecQuery($sQuery) If @ERROR Exit Val("&"+Right(DecToHex(@ERROR),4)) Return EndIf For Each $objInstance In $objEnum If $objInstance $=Execute("$$sValue = $$objInstance.$sWhat") If VarType($sValue) & 8192 For Each $sItem In $sValue $tmp=$tmp+'|'+Trim($sItem) Next Else $tmp=$tmp+'|'+Trim($svalue) EndIf EndIf Next $WMIQuery = Split(SubStr($tmp,2),'|') Exit Val("&"+Right(DecToHex(@ERROR),4)) EndFunction $SerialNumber = WMIQuery("IdentifyingNumber","Win32_ComputerSystemProduct","@wksta","WQL","")[0] $Manufacturer = WMIQuery("Vendor","Win32_ComputerSystemProduct","@wksta","WQL","")[0] $Model = WMIQuery("Name","Win32_ComputerSystemProduct","@wksta","WQL","")[0] $BIOSVersion = WMIQuery("SMBIOSBIOSVersion","Win32_Bios","@wksta","WQL","")[0] $BVersion = WMIQuery("Version","Win32_Bios","@wksta","WQL","")[0] If $BVersion = $BIOSVersion $BVersion = "" EndIf ? "$Model" Sleep 3 Select Case $Model = "Model 1" Shell "Model_1.cmd" Case $Model = "Model 2" Shell "Model_2.cmd" Case 1 ; this is a nice way to provide a default CASE ; if all other CASEs fail, this one will always be run EndSelect