【问题标题】:Batch file or Powershell to kill process [duplicate]批处理文件或Powershell杀死进程[重复]
【发布时间】: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)、双引号、而不是正确的、愚蠢的、(直)、双引号。

标签: powershell batch-file process taskkill


【解决方案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

    【讨论】:

      猜你喜欢
      • 2018-06-25
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多