Мне нужно получить информацию об ОЗУ как с локального, так и с удаленного компьютера, я знаю о WMI в System.Management и использую его, но моя проблема с WMI состоит в том, что у класса Win32_PhysicalMemory есть значение, которое мне нужно назвать " MemoryType", но всегда возвращает 0 или« Неизвестно ».
Win32_PhysicalMemory class (http://msdn.microsoft.com/en-us/library/aa394347%28v=vs.85%29.aspx)
Я пытался использовать Win32_PhysicalMemory из C # и VBScriptна 3 разных компьютерах XP Professional с учетной записью администратора, которые получили одинаковое значение MemoryType, равное 0 или «Неизвестно». Код, который я использовал, является простым и коротким, копируется и вставляется из нескольких источников в сети, поэтому я уверен, что нетЭто не большие проблемы.
Я неправильно использую WMI или есть альтернатива Windows API, которую я могу использовать?
Удаленные отчеты не обязательны.
В частности, мне нужно сосчитатьколичество палочек ОЗУ, которое он имеет или может иметь, скорость и тип ОЗУ, которое он использует, DDR2, DDR3 и т. д., класс Win32_PhysicalMemory дает мне все тего кроме типа оперативной памяти.
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"]);
}