Jump to content

Recommended Posts

Posted

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

Posted

using WMI Information you can pull manufacture and model.

; 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.

Posted

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 ..

Posted

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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...