WMI hardware, obtenha informações sobre RAM

Preciso recuperar informações de RAM de computadores locais e remotos, conheço o WMI no System.Management e estou usando-o, mas meu problema com o WMI é que a classe Win32_PhysicalMemory tem um valor que preciso chamar " MemoryType ", mas sempre retorna 0 ou" Desconhecido ".
Classe Win32_PhysicalMemory (http://msdn.microsoft.com/en-us/library/aa394347%28v=vs.85%29.aspx

Tentei usar o Win32_PhysicalMemory de C # e VBScript em 3 computadores XP Professional diferentes com uma conta de administrador e obtive o mesmo valor 0 ou "Unknown" MemoryType retornado. O código que usei é simples e curto, copia e cola de várias fontes da rede, por isso tenho certeza de que não há grandes problemas com el

Estou usando o WMI incorretamente ou há uma alternativa da API do Windows que posso usar?
elatórios remotos não são essenciai

Especificamente, preciso contar o número de sticks de RAM que ele possui, ou pode ter, a velocidade e o tipo de RAM que ele usa, DDR2, DDR3, etc., a classe Win32_PhysicalMemory me fornece tudo isso, exceto o tipo de RAM.

ConnectionOptions connection = new ConnectionOptions();
connection.Impersonation = ImpersonationLevel.Impersonate;

ManagementScope scope = new ManagementScope("\\\\.\\root\\CIMV2", connection);                
scope.Connect();

ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_PhysicalMemory");

ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);

foreach (ManagementObject queryObj in searcher.Get())
{
    System.Diagnostics.Debug.WriteLine("-----------------------------------");
    System.Diagnostics.Debug.WriteLine("Capacity: {0}", queryObj["Capacity"]);
    System.Diagnostics.Debug.WriteLine("MemoryType: {0}", queryObj["MemoryType"]);
}

questionAnswers(1)

yourAnswerToTheQuestion