如何找出造成大量内存消耗的Powershell脚本?

时间:2019-05-21 19:56:05

标签: powershell

有一个Powershell脚本正在服务器上运行,它消耗了我32GB内存的99%。我可以使用什么来识别它是什么脚本以及在哪里?

3 个答案:

答案 0 :(得分:3)

以管理员身份打开Powershell提示并运行以下两行:

$id = (Get-Process powershell | sort WorkingSet -Descending | select -first 1).Id
Get-WmiObject Win32_Process -Filter "ProcessId = '$id'" | Select CommandLine

这将获得最繁忙的powershell进程的命令行。您需要以管理员身份运行它,否则命令行将为空。

编辑:您可以使用此单行代码获取最繁忙的三个进程的命令行:

Get-Process powershell | sort WorkingSet -Descending | Select -First 3 | %{Get-WmiObject Win32_Process -Filter "ProcessId = $($_.Id)" | Select CommandLine}

答案 1 :(得分:1)

从管理PowerShell的提示中,首先获取所有PowerShell进程:

Get-Process PowerShell

找出引起问题的原因,然后获取进程ID。现在使用WMI获取启动它的命令行:

Get-CimInstance Win32_Process -Filter "processid = '1234'" | Select Commandline

这应该为您提供进一步调查的起点。

答案 2 :(得分:0)

怎么样:

get-process | sort ws