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()
}
几天前,我开始开发一个监视服务的 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()
}