Jump to content
Sign in to follow this  
chiners_68

Scripting help..

Recommended Posts

chiners_68

Hi All,

i have inherited a VB script which im putting into an auto it script. The VB script pulls inventory information from PC's but at present there is one problem. For some reason it only reports memory capacity for the 1st memory bank & not the total in the machine. Can somone advise on what to do to get an a memory capacity for each memory back so I can then see howw many sticks are installed & then I can total these fields up.

I currently have these line for pulling memory information.

Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory",,48)

For Each objItem in colItems

strRAM = objItem.Capacity / 1000000

strRAM = formatNumber(strRAM,0)

strRAMSpeed = objItem.Speed

all help is greatly apreciated

ive been working from this page but cannot see how to record from each slot.

http://msdn2.microsoft.com/en-us/library/aa387968.aspx

Edited by chiners_68

Share this post


Link to post
Share on other sites
weaponx

If you just need the total memory size and not each individual you can use this (you only need TotalPhysicalMemory):

; 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

Share this post


Link to post
Share on other sites
chiners_68

Cheers WeaponX.

ive changed too, & it works a treat. cheers

Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)

For Each objItem in colItems

strRAM = objItem.TotalPhysicalMemory / 100000

on your list you sent me written in autoit. how do you get that to output to a database file..?

Share this post


Link to post
Share on other sites
Blue_Drache

Look up the _SQLite_*() functions.


Lofting the cyberwinds on teknoleather wings, I am...The Blue Drache

Share this post


Link to post
Share on other sites
chiners_68

anyone now the section to get how many RAM slots are being used..?

ive got below which gives me the name of one of the slots ie DIMM_2 but all i want is how many slots are being used.

Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory",,48)
For Each objItem in colItems
    strRAMBanks = objItem.DeviceLocator

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.