Returns starting and ending addresses for all memory arrays installed on a computer.

This script was tested using Python 2.2.2-224 for Microsoft Windows, available from ActiveState.

Python
Edit|Remove
import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_MemoryArray")
for objItem in colItems:
    print "Access: ", objItem.Access
    z = objItem.AdditionalErrorData
    if z is None:
        a = 1
    else:
        for x in z:
            print "Additional Error Data: ", x
    print "Availability: ", objItem.Availability
    print "Block Size: ", objItem.BlockSize
    print "Caption: ", objItem.Caption
    print "Config Manager Error Code: ", objItem.ConfigManagerErrorCode
    print "Config Manager User Config: ", objItem.ConfigManagerUserConfig
    print "Correctable Error: ", objItem.CorrectableError
    print "Creation Class Name: ", objItem.CreationClassName
    print "Description: ", objItem.Description
    print "Device ID: ", objItem.DeviceID
    print "Ending Address: ", objItem.EndingAddress
    print "Error Access: ", objItem.ErrorAccess
    print "Error Address: ", objItem.ErrorAddress
    print "Error Cleared: ", objItem.ErrorCleared
    z = objItem.ErrorData
    if z is None:
        a = 1
    else:
        for x in z:
            print "Error Data: ", x
    print "Error Data Order: ", objItem.ErrorDataOrder
    print "Error Description: ", objItem.ErrorDescription
    print "Error Granularity: ", objItem.ErrorGranularity
    print "Error Info: ", objItem.ErrorInfo
    print "Error Methodology: ", objItem.ErrorMethodology
    print "Error Resolution: ", objItem.ErrorResolution
    print "Error Time: ", objItem.ErrorTime
    print "Error Transfer Size: ", objItem.ErrorTransferSize
    print "Install Date: ", objItem.InstallDate
    print "Last Error Code: ", objItem.LastErrorCode
    print "Name: ", objItem.Name
    print "Number Of Blocks: ", objItem.NumberOfBlocks
    print "Other Error Description: ", objItem.OtherErrorDescription
    print "PNP Device ID: ", objItem.PNPDeviceID
    z = objItem.PowerManagementCapabilities
    if z is None:
        a = 1
    else:
        for x in z:
            print "Power Management Capabilities: ", x
    print "PowerManagementSupported: ", objItem.PowerManagementSupported
    print "Purpose: ", objItem.Purpose
    print "Starting Address: ", objItem.StartingAddress
    print "Status: ", objItem.Status
    print "Status Info: ", objItem.StatusInfo
    print "System Creation Class Name: ", objItem.SystemCreationClassName
    print "System Level Address: ", objItem.SystemLevelAddress
    print "System Name: ", objItem.SystemName