Не могли бы вы предоставить некоторые дополнительные сведения, такие как операционная система, общий объем физической памяти и фактический вывод команды PowerShell?
При использовании класса win32_OperatingSystem следует помнить следующее:значения для FreePhysicalMemory и FreeVirtualMemory возвращаются в килобайтах, а не только в байтах, поэтому у вас может быть дополнительное деление на 1024.
Например, на моем компьютере с общей физической памятью 4 ГБ (32-разрядная WinXP - такОС может использовать только ~ 3,5 ГБ), вот вывод из моей PowerShell:
$test = gwmi win32_OperatingSystem
# verify the "visible" memory size to the Operating System
$test.TotalVisibleMemorySize
3652840
# check free memory
$test.FreePhysicalMemory
1872828
# divide by 1024 twice, once for KB -> MB, once for MB -> GB
($test.FreePhysicalMemory / 1024) / 1024
1.78606796264648
У меня запущено несколько приложений, но это показывает, что у меня все еще остается примерно 1,786 ГБ свободной физической памяти.Я проверил, что это поведение идентично и на моем Windows 7 x64.
Вот справочная страница MSDN для класса WMI Win32_OperatingSystem: http://msdn.microsoft.com/en-us/library/aa394239.aspx