TASKKILL 命令在脚本外部正常工作,但在脚本内部不正常

TASKKILL command works properly outside Script, but not inside of it

几天前,我开始开发一个监视服务的 Powershell 脚本。命令:

taskkill /f /fi "USERNAME eq admin" /im tm1top.exe

当我 运行 taskkill 停止脚本中的一个进程时,它不起作用:该进程保留在 运行 中,因此脚本无法正常结束。

另一方面,运行直接从 CMD 中执行完全相同的命令 (taskkill) 成功了。

注意:运行正在执行此脚本的用户在计算机上拥有管理员权限,我正在 运行正在 Windows Seever 2008。还尝试将任务创建到 Windows Scheduler 并运行 它与此用户具有最高权限,但结果相同..

你能告诉我应该修改什么才能让这个功能直接从我的 ps 脚本运行吗?

我建议为此使用 WMI:

Get-WmiObject Win32_Process | Where-Object {
    $_.GetOwner().User -eq 'admin' -and
    $_.Name -eq 'tm1top.exe'
} | ForEach-Object {
    $_.Terminate()
}