Returns information about both the internal and external cache memory on a computer.

This script was tested using Object REXX 2.1.0 for Microsoft Windows, available from IBM.

Object REXX
strComputer = "."
objWMIService = .OLEObject~GetObject("winmgmts:\\"||strComputer||"\root\CIMV2")
do objItem over objWMIService~ExecQuery("Select * from Win32_CacheMemory")
    say "Access:" objItem~Access
    z = objItem~AdditionalErrorData
    if .NIL <> z then
        do x over z
            say objProperty.Name ": " x
    say "Associativity:" objItem~Associativity
    say "Availability:" objItem~Availability
    say "Block Size:" objItem~BlockSize
    say "Cache Speed:" objItem~CacheSpeed
    say "Cache Type:" objItem~CacheType
    say "Caption:" objItem~Caption
    say "Config Manager Error Code:" objItem~ConfigManagerErrorCode
    say "Config Manager User Config:" objItem~ConfigManagerUserConfig
    say "Correctable Error:" objItem~CorrectableError
    say "Creation Class Name:" objItem~CreationClassName
    z = objItem~CurrentSRAM
    if .NIL <> z then
        do x over z
            say objProperty.Name ": " x
    say "Description:" objItem~Description
    say "Device ID:" objItem~DeviceID
    say "Ending Address:" objItem~EndingAddress
    say "Error Access:" objItem~ErrorAccess
    say "Error Address:" objItem~ErrorAddress
    say "Error Cleared:" objItem~ErrorCleared
    say "Error Correct Type:" objItem~ErrorCorrectType
    z = objItem~ErrorData
    if .NIL <> z then
        do x over z
            say objProperty.Name ": " x
    say "Error Data Order:" objItem~ErrorDataOrder
    say "Error Description:" objItem~ErrorDescription
    say "Error Info:" objItem~ErrorInfo
    say "Error Methodology:" objItem~ErrorMethodology
    say "Error Resolution:" objItem~ErrorResolution
    say "Error Time:" objItem~ErrorTime
    say "Error Transfer Size:" objItem~ErrorTransferSize
    say "Flush Timer:" objItem~FlushTimer
    say "Install Date:" objItem~InstallDate
    say "Installed Size:" objItem~InstalledSize
    say "Last Error Code:" objItem~LastErrorCode
    say "Level:" objItem~Level
    say "Line Size:" objItem~LineSize
    say "Location:" objItem~Location
    say "Max Cache Size:" objItem~MaxCacheSize
    say "Name:" objItem~Name
    say "Number Of Blocks:" objItem~NumberOfBlocks
    say "Other Error Description:" objItem~OtherErrorDescription
    say "PNP Device ID:" objItem~PNPDeviceID
    z = objItem~PowerManagementCapabilities
    if .NIL <> z then
        do x over z
            say objProperty.Name ": " x
    say "Power Management Supported:" objItem~PowerManagementSupported
    say "Purpose:" objItem~Purpose
    say "Read Policy:" objItem~ReadPolicy
    say "Replacement Policy:" objItem~ReplacementPolicy
    say "Starting Address:" objItem~StartingAddress
    say "Status:" objItem~Status
    say "Status Info:" objItem~StatusInfo
    z = objItem~SupportedSRAM
    if .NIL <> z then
        do x over z
            say objProperty.Name ": " x
    say "System Creation Class Name:" objItem~SystemCreationClassName
    say "System Level Address:" objItem~SystemLevelAddress
    say "System Name:" objItem~SystemName
    say "Write Policy:" objItem~WritePolicy