在具有相同用户名的PowerShell中列出并终止多个进程

时间:2017-05-28 10:14:09

标签: windows powershell powershell-v2.0 powershell-v3.0

我有4-5个进程(如java.exe,javaw.exe等),用户名为" OWNER"(假设)。下面是过滤java.exe进程的脚本,如果它属于" OWNER"则将其终止。我需要你的帮助来修改这个,以便任何与" OWNER"相关的过程。如果找到就会被杀死。

2 个答案:

答案 0 :(得分:5)

只需使用Get-Process

get-process -IncludeUserName | where username -like $username | stop-process

基本上你的整个脚本都可以用这行代替

答案 1 :(得分:0)

带有Get-Process开关的

-IncludeUsername仅适用于WMF 5.0。

WMI是这里的选择。

您可以通过检查所有者等于相应的用户来终止该过程。

Get-WmiObject -Class Win32_Process | Where-Object -FilterScript { 
$_.GetOwner.User -eq "$Owner" } | Invoke-WmiMethod -Name Terminate

修改:以上代码是单行代码,您可以将Get-WmiObject的输出保存在变量中,并通过集合保存foreach以打印流程id并调用terminate()方法,而非使用Invoke-WmiMethod

注意:此代码未经过测试