Powershell 获取系统可用内存 2


使用Powershell获取系统可用内存可以使用两种方法,一种是wmi Win32_OperatingSystem对象,另一种是可以通过性能计数器。

通过Win32_OperatingSystem,代码如下:

$ops = Get-WmiObject -Class Win32_OperatingSystem
"机器名      : {0}" -f $ops.csname
"可用内存(MB): {0}" -f ([math]::round($ops.FreePhysicalMemory / 1kb, 2))
"可用内存(GB): {0}" -f ([math]::round(($ops.FreePhysicalMemory / (1mb)), 2))

输出如下:

机器名      : BAOZHEN-PC
可用内存(MB): 1834.59
可用内存(GB): 1.79

通过性能计数器获取可用内存,代码如下:

#查看内存相关的性能计数器
 (Get-Counter -ListSet memory).Counter
#Available Bytes 为可用的内存大小
#通过Path获取该计数器
$availableMemoryCounter=Get-Counter -Counter "\Memory\Available Bytes"
$freeMemory=$availableMemoryCounter.CounterSamples[0].rawValue

#把可用内存转换成GB
"可用内存:$([Math]::Round($freeMemory/1gb,2))GB"
#把可用内存转换成MB
"可用内存:$([Math]::Round($freeMemory/1mb,2))MB"

输出如下:

MemoryCache Bytes
MemoryCache Bytes Peak
MemoryPool Paged Resident Bytes
MemorySystem Code Total Bytes
MemorySystem Code Resident Bytes
MemorySystem Driver Total Bytes
MemorySystem Driver Resident Bytes
MemorySystem Cache Resident Bytes
Memory% Committed Bytes In Use
MemoryAvailable KBytes
MemoryAvailable MBytes
MemoryTransition Pages RePurposed/sec
MemoryFree & Zero Page List Bytes
MemoryModified Page List Bytes
MemoryStandby Cache Reserve Bytes
MemoryStandby Cache Normal Priority Bytes
MemoryStandby Cache Core Bytes
可用内存:1.69GB
可用内存:1731MB

关于上面的转换MB和KB的脚本,建议采用一楼朋友的方法。

本文链接: https://www.pstips.net/powershell-get-free-memory.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

2 条评论 “Powershell 获取系统可用内存

    • Mooser Lee 文章作者

      感谢一楼的哥们的帮助提醒:
      1. 换算成KB和MB可以直接使用, 这个太方便了,之前我还不知道,已更新。
      2. 反斜杠没有显示出来应当是使用Windows Live Writer发表文章时出的问题,已更新。