Каким будет предпочтительный способ собрать объем оперативной памяти на каждой из наших более чем 500 компьютеров с Windows (XP и 7) с наименьшими усилиями?
Я собираю эту информацию (и многое другое) как часть сценария входа в систему. Каждый журнал (один на машину и один на пользователя) позже анализируется, и информация сохраняется в базе данных. Соответствующая часть сценария (VBS), который я скопировал из давно забытого источника, такова:
'// 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
Я бы предложил два варианта:
Однако, поскольку ваш вопрос был наименее затратным, я бы, вероятно, сказал MAP.