【发布时间】:2021-10-14 12:17:17
【问题描述】:
我正在编写一个 VBScript,它需要检索与每个正在运行的进程相对应的可执行文件的完整路径。
tasklist 只提供部分信息,我发现的所有其他解决方案都涉及使用 WMI,我不能假设它在我的目标系统上可用。
因此,我的问题类似于this one,只是我需要明确支持 WMI 不可用(即禁用)的情况。
在普通的 VBScript 中可以做到这一点吗?还是我需要编译一个可以调用 Win32 API 函数的本机可执行文件,然后从我的 VBScript 调用它?
【问题讨论】:
-
是否可以选择使用默认未安装的单独(已编译)程序?
-
@BrickByBrick 您无法启用 WMI?如果您无法控制计算机,您要完成什么?我猜它被禁用是有原因的。
-
@user692942 这正是我想知道的。 wmi是获取进程exe路径的唯一方法吗?不,无法启用 wmi。
-
@BrickByBrick 我现在手头没有这样的外部程序(需要对其进行一些研究并在没有 WMI 的情况下对其进行测试)但是它需要做什么(如果你将自己编写)将在相关进程上使用Windows API的the
QueryFullProcessImageNamefunction(在使用OpenProcess打开它之后)。 -
@CherryDT 有趣...this MSDN thread 建议完全相反。我有点怀疑这两个函数都将调用同一个本机 API,但如果不跟踪执行,我无法确定这一点。以前从来没有遇到过这个问题。在我的耳朵里有强烈的 X-Y 问题。