bourny Posted July 10, 2008 Share Posted July 10, 2008 Is there a way to detect the type or model of p.c the script is running on. I have systems shat run inventories on p.c`s and can do this but do not know how. I am guessing the system has these values but not in the registry .... I am looking to identify if my script is running on a laptop or a desktop p.c (Might beable to do this with a .vbs I have to detect a battery) The next thing is to detect if I am on an IBM / Packard Bell / Compaq / HP and even the model number if that is possible. I know it can be done as the Landesk program can do this but not sure how it achieves it. This will allow me to take out a lot of user selections and automate it thru script decisions - I have also looked at 3rd party command line utilities or scripts but not found anything... Any help appreciated Link to comment Share on other sites More sharing options...
Kerros Posted July 10, 2008 Share Posted July 10, 2008 using WMI Information you can pull manufacture and model. expandcollapse popup; Generated by AutoIt Scriptomatic $wbemFlagReturnImmediately = 0x10 $wbemFlagForwardOnly = 0x20 $colItems = "" $strComputer = "localhost" $Output="" $Output = $Output & "Computer: " & $strComputer & @CRLF $Output = $Output & "==========================================" & @CRLF $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2") $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _ $wbemFlagReturnImmediately + $wbemFlagForwardOnly) If IsObj($colItems) then For $objItem In $colItems $Output = $Output & "AdminPasswordStatus: " & $objItem.AdminPasswordStatus & @CRLF $Output = $Output & "AutomaticResetBootOption: " & $objItem.AutomaticResetBootOption & @CRLF $Output = $Output & "AutomaticResetCapability: " & $objItem.AutomaticResetCapability & @CRLF $Output = $Output & "BootOptionOnLimit: " & $objItem.BootOptionOnLimit & @CRLF $Output = $Output & "BootOptionOnWatchDog: " & $objItem.BootOptionOnWatchDog & @CRLF $Output = $Output & "BootROMSupported: " & $objItem.BootROMSupported & @CRLF $Output = $Output & "BootupState: " & $objItem.BootupState & @CRLF $Output = $Output & "Caption: " & $objItem.Caption & @CRLF $Output = $Output & "ChassisBootupState: " & $objItem.ChassisBootupState & @CRLF $Output = $Output & "CreationClassName: " & $objItem.CreationClassName & @CRLF $Output = $Output & "CurrentTimeZone: " & $objItem.CurrentTimeZone & @CRLF $Output = $Output & "DaylightInEffect: " & $objItem.DaylightInEffect & @CRLF $Output = $Output & "Description: " & $objItem.Description & @CRLF $Output = $Output & "Domain: " & $objItem.Domain & @CRLF $Output = $Output & "DomainRole: " & $objItem.DomainRole & @CRLF $Output = $Output & "EnableDaylightSavingsTime: " & $objItem.EnableDaylightSavingsTime & @CRLF $Output = $Output & "FrontPanelResetStatus: " & $objItem.FrontPanelResetStatus & @CRLF $Output = $Output & "InfraredSupported: " & $objItem.InfraredSupported & @CRLF $strInitialLoadInfo = $objItem.InitialLoadInfo(0) $Output = $Output & "InitialLoadInfo: " & $strInitialLoadInfo & @CRLF $Output = $Output & "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF $Output = $Output & "KeyboardPasswordStatus: " & $objItem.KeyboardPasswordStatus & @CRLF $Output = $Output & "LastLoadInfo: " & $objItem.LastLoadInfo & @CRLF $Output = $Output & "Manufacturer: " & $objItem.Manufacturer & @CRLF $Output = $Output & "Model: " & $objItem.Model & @CRLF $Output = $Output & "Name: " & $objItem.Name & @CRLF $Output = $Output & "NameFormat: " & $objItem.NameFormat & @CRLF $Output = $Output & "NetworkServerModeEnabled: " & $objItem.NetworkServerModeEnabled & @CRLF $Output = $Output & "NumberOfProcessors: " & $objItem.NumberOfProcessors & @CRLF $strOEMLogoBitmap = $objItem.OEMLogoBitmap(0) $Output = $Output & "OEMLogoBitmap: " & $strOEMLogoBitmap & @CRLF $strOEMStringArray = $objItem.OEMStringArray(0) $Output = $Output & "OEMStringArray: " & $strOEMStringArray & @CRLF $Output = $Output & "PartOfDomain: " & $objItem.PartOfDomain & @CRLF $Output = $Output & "PauseAfterReset: " & $objItem.PauseAfterReset & @CRLF $strPowerManagementCapabilities = $objItem.PowerManagementCapabilities(0) $Output = $Output & "PowerManagementCapabilities: " & $strPowerManagementCapabilities & @CRLF $Output = $Output & "PowerManagementSupported: " & $objItem.PowerManagementSupported & @CRLF $Output = $Output & "PowerOnPasswordStatus: " & $objItem.PowerOnPasswordStatus & @CRLF $Output = $Output & "PowerState: " & $objItem.PowerState & @CRLF $Output = $Output & "PowerSupplyState: " & $objItem.PowerSupplyState & @CRLF $Output = $Output & "PrimaryOwnerContact: " & $objItem.PrimaryOwnerContact & @CRLF $Output = $Output & "PrimaryOwnerName: " & $objItem.PrimaryOwnerName & @CRLF $Output = $Output & "ResetCapability: " & $objItem.ResetCapability & @CRLF $Output = $Output & "ResetCount: " & $objItem.ResetCount & @CRLF $Output = $Output & "ResetLimit: " & $objItem.ResetLimit & @CRLF $strRoles = $objItem.Roles(0) $Output = $Output & "Roles: " & $strRoles & @CRLF $Output = $Output & "Status: " & $objItem.Status & @CRLF $strSupportContactDescription = $objItem.SupportContactDescription(0) $Output = $Output & "SupportContactDescription: " & $strSupportContactDescription & @CRLF $Output = $Output & "SystemStartupDelay: " & $objItem.SystemStartupDelay & @CRLF $strSystemStartupOptions = $objItem.SystemStartupOptions(0) $Output = $Output & "SystemStartupOptions: " & $strSystemStartupOptions & @CRLF $Output = $Output & "SystemStartupSetting: " & $objItem.SystemStartupSetting & @CRLF $Output = $Output & "SystemType: " & $objItem.SystemType & @CRLF $Output = $Output & "ThermalState: " & $objItem.ThermalState & @CRLF $Output = $Output & "TotalPhysicalMemory: " & $objItem.TotalPhysicalMemory & @CRLF $Output = $Output & "UserName: " & $objItem.UserName & @CRLF $Output = $Output & "WakeUpType: " & $objItem.WakeUpType & @CRLF $Output = $Output & "Workgroup: " & $objItem.Workgroup & @CRLF if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop $Output="" Next Else Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_ComputerSystem" ) Endif Func WMIDateStringToDate($dtmDate) Return (StringMid($dtmDate, 5, 2) & "/" & _ StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _ & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2)) EndFunc Kerros===============================================================How to learn scripting: Figure out enough to be dangerous, then ask for assistance. Link to comment Share on other sites More sharing options...
bourny Posted July 11, 2008 Author Share Posted July 11, 2008 V. Impressed .... I need to learn about "ObjGet" and what you can extract - Is there a good guide anywhere to where this information is hidden on the OS and how to know what to call to find it ... Thanks again .. Link to comment Share on other sites More sharing options...
Kerros Posted July 11, 2008 Share Posted July 11, 2008 There are a large number of topics on the forum that talk about WMI scripts. I used the Scriptomatic tool written by SvenP, who translated the one MS put out. You can find Scriptomatic Here Kerros===============================================================How to learn scripting: Figure out enough to be dangerous, then ask for assistance. Link to comment Share on other sites More sharing options...
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