我如何找出(在Power
shell中)什么过程/什么使用最多的内存?
编辑:我试图弄清楚如何使用Powershell找出使用所有物理内存的情况,以防任务管理器等无法解释为什么所有物理RAM都用完了.即我需要识别缓存等使用的内存.
这是获取当前正在运行的进程的信息并按工作集大小排序的方法
Get-Process | Sort-Object -Descending WS
将该输出分配给变量,它将为您提供结果数组,然后您可以写出数组的第一个成员(在本例中将是一个System.Diagnostics.Process对象).
$ProcessList = Get-Process | Sort-Object -Descending WS Write-Host $ProcessList[0].Handle "::" $Process.ProcessName "::" $Process.WorkingSet
这是另一个快速而脏的脚本,使用WMI的Win32_Process提供程序从当前正在运行的进程列表中转储一些数据项:
$ProcessList = Get-WmiObject Win32_Process -ComputerName mycomputername foreach ($Process in $ProcessList) { write-host $Process.Handle "::" $Process.Name "::" $Process.WorkingSetSize }
这将列出PID(句柄),进程名称和当前工作集大小.您可以使用WMI Process class的不同属性进行更改.