how to retrieve memory type ( rdimm or udimm)?
The first idea is using WMI Win32_PhysicalMemory
and test if TotalWidth (bit count including check bits) is greater than DataWidth (bit count excluding check bits).
gwmi Win32_PhysicalMemory | select totalwidth, datawidth, banklabel | % { if ( $_.totalwidth > $_.datawidth ) { "$($_.banklabel) is ECC memory type" } else { "$($_.banklabel) is non-ECC Memory Type" } }
I don't know if exist a best way, and this check if memory is ECC or not.
try this for checking buffered/registered or not memory type:
$a = Get-WMIObject -Class "Win32_PhysicalMemoryArray" Switch ($a.MemoryErrorCorrection) { 0 {Write-Host "ECC Type....: Reserved"} 1 {Write-Host "ECC Type....: Other"} 2 {Write-Host "ECC Type....: Unknown"} 3 {Write-Host "ECC Type....: None"} 4 {Write-Host "ECC Type....: Parity"} 5 {Write-Host "ECC Type....: Single-bit ECC"} #unbuffered 6 {Write-Host "ECC Type....: Multi-bit ECC"} #registed 7 {Write-Host "ECC Type....: CRC"} }
as I didn't find any simple solution, i think I will do it by scraping the dell support site (providing the server ServiceTag on this url) : http://support.euro.dell.com/support/DPP/Index.aspx?c=fr&cs=RC1077983&l=fr&s=pad&ServiceTag=XXXXXX