背景。 所以我的一个团队已经构建了一个桌面应用程序安装程序。它运行并将打开不同的进程,具体取决于它当时正在使用的功能。
问题所在。 当我们打开(我们将其称为“Jim.exe”)时,它运行顺利。 Jim的不同部分将根据其使用的部分打开额外的Jim.exe。这直接不是问题。
问题是退出应用程序时并非所有这些附加进程都关闭。这无疑是对开发的疏忽,但设计该过程的人不再适用于该项目。
原创尝试解决方案。 我的任务是找到一种方法来关闭那些流氓进程。我确实得到了一些帮助,使用VBS来搜索和销毁这些进程。使用以下内容:
Kill.vbs:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'Jim.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
但是我找不到将它附加到任何类型的close事件的方法,所以我想出了一个.bat来启动exe并包含它直到它关闭从而触发kill.vbs:
Box.bat(Box.exe)
"C:\Program Files\Jim Folder\Jim.exe"
Call "C:\Program Files\Jim Folder\Kill.vbs"
我将上面的.Bat转换为自己的exe,这样用户就可以使用这个“Box.exe”的快捷方式来打开实际的exe。 2.等待应用程序关闭3.触发Kill.vbs。
完美的作品!但是我不能用它...... Box.exe立即被AV标记并被吃掉......你可能会猜到为什么。
我的问题。 可能有另一种安排方式,所以AV不吃我的.Exe?或者是一种不同的脚本方式,可以在关闭应用程序后关闭恶意进程。我相信有多种方法可以解决这个问题,但我正在画一个空白。它不一定是vbs或.bat必须有任何脚本或代码,如果我可以分开使它工作的东西。
目标。 一种杀死应用程序未关闭的Rogue进程的方法。
P.S。我使用Bat2Exe将Box.bat转换为Box.exe
我真的希望这很清楚,如果您需要更多信息,请告诉我。它也是面向用户的,所以当它启动时我不能打开终端窗口,我无法进行AV隔离。