有一个特定的进程困扰着我,它在通过命令提示符或任务管理器杀死它后大约一分钟内持续启动。
目前我正在使用让批处理文件每 15 秒循环一次的方法,如果它在那里就将其杀死。但是,我更希望能够阻止它的启动。
是否有适用于 Windows 7 的任何方法来跟踪进程的启动方式?
有一个叫做 PPID(父进程 ID)的东西,但在 Windows 中找到它相对“棘手”,因为它不是任务管理器中显示的列,我什至在进程资源管理器中也没有看到它的列。
执行此操作的两种方法
Method 1 - WMIC
Method 2 - Process Monitor
Run Code Online (Sandbox Code Playgroud)
这两种方法都很快捷
我将使用如何从这里使用 WMIC 找到 PPID 的答案 /sf/ask/524070221/
这使得剩下的事情变得相当简单
C:\blah>wmic process get processid,parentprocessid
ParentProcessId ProcessId
0 0
0 4
4 320
392 572
320 656
648 664
392 688
688 740
688 756
688 764
... ...
Run Code Online (Sandbox Code Playgroud)
其余的相当明显。
所以让我们假设你想找到谁启动了 calc.exe
你从任务管理器看到的 calc.exe 是 PID 7384
Run Code Online (Sandbox Code Playgroud)C:\blah>wmic process get processid,parentprocessid | find "7384" 10896 7384 PPID PID C:\crp>
WMIC 显示了 PID 和 PPID 之间的关联。然后在任务管理器中查找 10896,(10896 是为 calc.exe 的 PID 7384 列出的 PPID),在任务管理器中我看到 PID 为 10896 的进程是 cmd.exe,这是我用来启动 calc 的进程。 exe 确实 cmd.exe 是产生 calc.exe 的父进程
您可以在 sysinternals 进程监视器中进行。
单击菜单栏中的 filter..filter,然后添加一个过滤进程名称或路径或 PID 的过滤器,例如进程名称 calc.exe 或路径过滤器,然后输入 c:\windows\system32\calc.exe
我碰巧使用了进程名称

如果尚未捕获,请执行 OK.. 和 file..capture。
双击正确的进程,在这种情况下加载图像 calc.exe 并出现一个属性对话框,单击正确的选项卡“进程”,您会看到 PID 和 PPID(父进程 ID)。

当然,当您像现在一样了解 PPID 时,您可以在任务管理器中查找它以了解是哪个进程产生了它