Jump to content

Scripting help..


Recommended Posts

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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...