批处理文件或Powershell杀死进程[重复]

Posted

技术标签:

【中文标题】批处理文件或Powershell杀死进程[重复]【英文标题】:Batch file or Powershell to kill process [duplicate] 【发布时间】:2021-12-05 13:27:53 【问题描述】:

使用 Win2019 SRV,我的任务列表中有一个进程(process_name)。 每个用户启动一个新的 process_name(同一个进程),在任务管理器中,我可以在“用户列”中看到不同用户的同一个进程。 用户为 User1、User2、User3、...

所以,我想使用脚本杀死由 User2 启动的 process_name,留下另一个。 使用此批处理文件代码,我可以找到进程名称并将其杀死

Tasklist | Findstr /I “process_name”
Taskkill /IM “process_name”

但是通过这种方式,我会为所有用户终止此进程。 "Taskkill /U" 选择执行命令的用户。

如何只选择由 User2 执行的进程?

谢谢

【问题讨论】:

TASKLISTTASKKILL 都有指定用户名的选项。打开命令提示符并输入:tasklist /?taskkill /? 以阅读语法用法。 如上所述,阅读帮助和使用信息应该会向您展示您需要的语法。因此,在 [batch-file] 中,尝试 @%SystemRoot%\System32\taskkill.exe /Fi "UserName Eq User2" /Im Process_Name。以后请不要在没有先阅读您需要帮助的命令的内置帮助信息之前提出问题。 这不是您在本网站上的第一次互动,您应该了解更多。 另请注意,您提交的代码使用了不正确的智能、(curly)、双引号、而不是正确的、愚蠢的、(直)、双引号。 【参考方案1】:
Get-Process program.exe -IncludeUserName | Where $_.UserName -match "abc" | Stop-Process

从提升的命令提示符尝试此操作 - PS v5

【讨论】:

【参考方案2】:

在 PowerShell 中这应该可以工作(必须以管理员身份运行)

Get-Process -Name 'process_name' -IncludeUserName | 
Where-Object  $_.UserName -eq "User2"  | Stop-Process -Force

注意用户名的格式为domain\username

【讨论】:

以上是关于批处理文件或Powershell杀死进程[重复]的主要内容,如果未能解决你的问题,请参考以下文章

杀死给定进程的次要任务

在 32 位 powershell 中按路径查找/杀死 64 位进程

powershell 杀死IntelliJ java进程(在IntelliJ中停止Tomcat调试会话时,某些进程未被杀死并保持阻塞端口1099)

powershell 杀死IntelliJ java进程(在IntelliJ中停止Tomcat调试会话时,某些进程未被杀死并保持阻塞端口1099)

如何通过cmd杀死powershell进程?统一远程应用

text PowerShell有两种杀死所有mathing进程的方法