使用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
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
换算成KB和MB可以直接用
\Memory\Available KBytes
\Memory\Available MBytes
PS:文章中反斜线都没有显示出来
感谢一楼的哥们的帮助提醒:
1. 换算成KB和MB可以直接使用, 这个太方便了,之前我还不知道,已更新。
2. 反斜杠没有显示出来应当是使用Windows Live Writer发表文章时出的问题,已更新。
这种文章这么好为什么没有人读呢