如何使用PowerShell获取远程计算机的免费物理内存

时间:2012-09-03 15:41:03

标签: windows powershell memory-management powershell-remoting

我有这个:

(Get-WMIObject Win32_logicaldisk -computername computer).TotalPhysicalMemory

获取远程计算机上安装的物理内存的大小。 如何获得该计算机的免费内存?

我试过

(Get-WMIObject Win32_logicaldisk -computername computer).FreePhysicalMemory

和其他一些变体,但没有效果。是否有一些可能的“过滤器”列表?

5 个答案:

答案 0 :(得分:10)

每当您想要查看对象的所有属性时,请将其传递给Format-List *

Get-WmiObject Win32_LogicalDisk | format-list *
Get-WmiObject Win32_OperatingSystem | fl *

或者,如果您正在寻找特定的属性,可以使用通配符搜索

Get-WmiObject Win32_OperatingSystem | fl *free*

正如阿奎那所说,你需要Win32_OperatingSystem类,FreePhysicalMemory属性。 Win32_LogicalDisk跟踪硬盘,而不是RAM。

答案 1 :(得分:8)

您还可以尝试Get-Counter cmdlet:

(Get-Counter -Counter "\Memory\Available MBytes" -ComputerName computer).CounterSamples[0].CookedValue

答案 2 :(得分:2)

我希望Win32_OperatingSystem不是Win32_logicaldisk我相信。

答案 3 :(得分:1)

所以把其他答案放在一起:

get-ciminstance Win32_OperatingSystem | % FreePhysicalMemory

远程:

invoke-command computer { get-ciminstance Win32_OperatingSystem | % FreePhysicalMemory } 

答案 4 :(得分:0)

本地机器的空闲内存(远程机器使用-computername foo):

(Get-WMIObject Win32_OperatingSystem).FreePhysicalMemory  # in KB

19793740
(Get-WMIObject Win32_OperatingSystem).FreePhysicalMemory / 1MB  # in GB

18.8592491149902

除以 1MB 得到 GB 似乎很奇怪,但原始数字仅以 KB 为单位给出。结果其实和写* 1KB / 1GB(你也可以用)没什么区别。