2017-05-28 47 views
0

我有4-5个具有用户名“OWNER”(假设)的进程(如java.exe,javaw.exe等)。以下是过滤java.exe进程并在它属于“OWNER”时将其杀死的脚本。我需要你的帮助来修改这个,以便任何与“OWNER”有关的进程在找到时都会被杀死。列出并杀死具有相同用户名的PowerShell中的多个进程

+0

@ 4c74356b41这里的格式是指? – RishuA

+0

让我知道如果格式化看起来好吧或不.. – RishuA

+0

'@ {} gwmi win32_process' - 这看起来不正确 – 4c74356b41

回答

4

Get-Process只要做到这一点:

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

基本上你的整个脚本可以用这条线

+0

V3没有includeusername – RishuA

0

Get-Process-IncludeUsername开关代替只适用于WMF 5.0。

WMI是此处的选项。

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

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

编辑:上面的代码是一个衬垫,能省则出在一个变量和foreachGet-WmiObject通过收集打印过程id并调用terminate()方法,而不是使用Invoke-WmiMethod

注意:此代码未经过测试

+0

这似乎是个好主意。虽然我首先想打印进程ID并想杀死那个..如何用你输入的命令来做到这一点.. – RishuA

+0

你不会为你的任务从StackOverflow得到一个现成的脚本,我已经编辑了答案,给你最大提示。 –

+0

在我粘贴的实际脚本中,我希望用作该部分的一些依赖项。希望你明白了。我会尽力帮助你们提供的所有帮助。 – RishuA