如何将Windows Server内存使用率查询PowerShell脚本简化为单行或更简洁形式?
简化Windows Server内存使用率查询的PowerShell单行脚本
当然可以!我帮你把这个查询内存使用率的脚本压缩成更简洁的单行版本,既保留原逻辑,又方便你直接复制到故障服务器快速执行。
基础本地查询版本(仅调用一次WMI,更高效)
[math]::Round((($os=Get-WmiObject -Class win32_operatingsystem -ErrorAction Stop; ($os.TotalVisibleMemorySize-$os.FreePhysicalMemory)*100/$os.TotalVisibleMemorySize)),2)
远程服务器查询版本
如果需要查询远程服务器,只需添加-ComputerName参数指定目标服务器名称:
[math]::Round((($os=Get-WmiObject -ComputerName "你的服务器名" -Class win32_operatingsystem -ErrorAction Stop; ($os.TotalVisibleMemorySize-$os.FreePhysicalMemory)*100/$os.TotalVisibleMemorySize)),2)
更推荐的CIM版本(替代WMI,兼容性更好)
现在PowerShell更推荐使用Get-CimInstance替代Get-WmiObject,这里也给你对应的单行版本:
[math]::Round((($os=Get-CimInstance -ClassName win32_operatingsystem -ErrorAction Stop; ($os.TotalVisibleMemorySize-$os.FreePhysicalMemory)*100/$os.TotalVisibleMemorySize)),2)
远程查询同样只需添加-ComputerName "你的服务器名"即可。
逻辑说明
这些单行脚本的核心逻辑和你原脚本完全一致:
- 一次性获取系统内存的总容量和剩余容量信息
- 计算已用内存占总内存的百分比
- 将结果四舍五入保留两位小数
内容的提问来源于stack exchange,提问作者whizkid




