【问题标题】:AutoIT Check If Process is running on Remote PCAutoIT 检查进程是否在远程 PC 上运行
【发布时间】:2025-11-02 10:30:02
【问题描述】:

我目前有一些 AutoIT 代码将终止远程机器上的进程,但我需要找到一种方法来添加检查以查看进程是否首先运行。花了一些时间通过 AutoIT 论坛和谷歌筛选后,我不知所措。这是我目前拥有的:

Func EndProc()
$oWMIService = ObjGet("winmgmts:\\" & $ipAddress & "\root\CIMV2")

If Not IsObj($oWMIService) Then
    MsgBox(48, "ERROR", "Couldn't locate the computer. Please make sure you've selected the correct computer and try again.")
    Return
EndIf

Dim $handle, $colProc, $cProc
$cProc = $oWMIService.ExecQuery('SELECT * FROM Win32_Process WHERE Name = "' & $ProcessToKill & '"')

For $oProc In $cProc
    $oProc.Terminate()
 Next
If $handle Then
    Return $handle
Else
    Return 0
EndIf
EndFunc ; Func EndProc()

【问题讨论】:

  • 您是否要确认这是否有效?或者改进建议?请澄清。
  • 抱歉我不清楚。我知道上面的代码有效。我正在寻找是否有人可以帮助我添加一个检查,以查看我要杀死的进程是否首先运行,然后再尝试终止该进程。这有意义吗?

标签: process autoit wmi-query


【解决方案1】:

您可能想查看示例here,有许多不同的方法可以通过 AutoIT 使用 WMI 来检索远程运行的进程列表并过滤您关心的进程。

另外,通过 AutoIT 致电 PSList 也可能很有用。

【讨论】:

  • 这让我走上了正确的道路,我很感激。谢谢保罗。