【问题标题】:PowerShell won't terminate hung processPowerShell 不会终止挂起的进程
【发布时间】:2017-03-27 21:55:53
【问题描述】:

我有一个场景,由于 Oracle 数据库,每个星期一早上都有一个进程卡住,所以我尝试创建一个 PowerShell 脚本来每周一运行,但无论是否出错,该进程仍然存在。

我试图用于“kill”的行是:

Get-Process -Name ez0* -ComputerName $server | Stop-Process -Force

尝试在没有-ComputerName 的情况下在本地执行此操作。

无论有没有-Force,我都没有从这条线上得到任何错误,它只是执行并继续前进。

只是做Get-Process 工作,我可以看到它,但我不能用 PowerShell 结束它。经过多次尝试,我远程登录到服务器并右键单击该进程并选择“结束任务”,效果很好。

这是一个奇怪的进程,因为它是最初 8 个进程中的一个(基于内核),当您停止服务时,除了一个被挂起的进程之外,所有进程都会被删除。

【问题讨论】:

  • 试试Invoke-Command $server -Scriptblock {Get-Process -name ez0* | Stop-Process -Force}
  • 使用版本 5+,当我尝试从通过管道的远程服务器停止进程对象时出现以下异常:stop-process : Cannot stop process "notepad (11720)" because of the following err or: Feature is not supported for remote machines.
  • 我将在周一尝试 wmi 方式看看情况如何,但这不是远程问题,因为本地测试是相同的。

标签: powershell process terminate


【解决方案1】:

尝试使用:

$termproc = (get-wmiobject -ComputerName $server -Class Win32_Process -Filter "name like 'ez0%'"
$termproc.terminate()

如果您不想先检查变量中的进程,也可以执行以下操作。

(get-wmiobject -ComputerName $server -Class Win32_Process -Filter "name like 'ez0%'").terminate()

谢谢,蒂姆。

【讨论】:

  • 感谢 wmiobject 解决方案!由于某种原因,终止命令在 wmiobject 工作时抓取进程,而 Stop-Process 没有。
  • Patrik 不用担心。很高兴它奏效了。谢谢你告诉我。
猜你喜欢
  • 1970-01-01
  • 2010-11-07
  • 1970-01-01
  • 2020-06-08
  • 2016-04-16
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
相关资源
最近更新 更多