Reuni essas informações (e muito mais) como parte do script de logon. Cada log (um por máquina e um por usuário) é analisado posteriormente e as informações são armazenadas em um banco de dados. A parte relevante do script (VBS), que eu copiei de alguma fonte há muito esquecida, é:
'// Memory Info
objHardwareFile.WriteLine "Memory Information:"
objHardwareFile.WriteLine "==================="
For Each objMem In GetObject("winmgmts:{impersonationLevel=impersonate}\.\root\cimv2").InstancesOf("Win32_PhysicalMemory")
Select Case objMem.MemoryType
Case 0
rtype = "Unknown"
Case 1
rtype = "Other"
Case 2
rtype = "DRAM"
Case 3
rtype = "Synchronous DRAM"
Case 4
rtype = "Cache DRAM"
Case 5
rtype = "EDO"
Case 6
rtype = "EDRAM"
Case 7
rtype = "VRAM"
Case 8
rtype = "SRAM"
Case 9
rtype = "RAM"
Case 10
rtype = "ROM"
Case 11
rtype = "Flash"
Case 12
rtype = "EEPROM"
Case 13
rtype = "FEPROM"
Case 14
rtype = "EPROM"
Case 15
rtype = "CDRAM"
Case 16
rtype = "3DRAM"
Case 17
rtype = "SDRAM"
Case 18
rtype = "SGRAM"
Case 19
rtype = "RDRAM"
Case 20
rtype = "DDR"
End Select
objHardwareFile.WriteLine " Memory Bank: " & objMem.BankLabel
objHardwareFile.WriteLine " Memory Size: " & objMem.Capacity/1024/1024 & " MB"
objHardwareFile.WriteLine " Memory Speed: " & objMem.Speed & " MHZ"
objHardwareFile.WriteLine " Memory Type: " & rtype
next