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