我正在嘗試確定計算機中安裝的物理內存量。爲了實現這一點,我使用WMI(通過.net 4.0),它是服務。問題是無論遠程計算機有多少內存,返回的值都是4GB。這已經過測試有三個遠程計算機:問題在遠程計算機上讀取內存量
- 虛擬機,1GB RAM,Windows 2003的
- 物理機,2GB內存,Windows XP中
- 物理機,2GB內存,64位Windows 7
我自己正在運行物理機,4GB內存,Windows 7 64bit。
顯示代碼:
uint phisicalMemorySize = 0;
ConnectionOptions co = new ConnectionOptions();
co.Username = null;
ManagementScope ms = new ManagementScope("\\\\" + computerName, co);
ObjectQuery q = new ObjectQuery("select TotalPhysicalMemory from Win32_ComputerSystem");
ManagementObjectSearcher os = new ManagementObjectSearcher(ms, q);
ManagementObjectCollection moc = os.Get();
foreach (ManagementObject o in moc)
{
phisicalMemorySize += Convert.ToUInt64(o["TotalPhysicalMemory"], CultureInfo.InvariantCulture);
}
我一直在使用select Capacity from Win32_PhysicalMemory
和select TotalVisibleMemorySize from Win32_OperatingSystem
的查詢,但無濟於事也試過。在末尾總是4GB。
我相信你對容量錯了。它返回**每個棒的容量**([點擊](http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/32da73c1-de42-4c74-b59e-4f1e51d2e7a2))當然不會假設在WMI裏面改變了。 RAM中的BIOS又有多大? 100 MB?這不應該太偏離我的結果。你用什麼類和財產來獲得筆記本電腦中提到的3 GB? – AtaSmrk 2011-04-07 07:10:26