You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不使用WMI的VBScript中获取运行进程的可执行文件完整路径

WMI禁用场景下VBScript获取进程可执行文件全路径的解决方案

结论

纯原生VBScript(无额外组件依赖)无法实现该需求。VBScript本身不具备直接调用Win32 API的能力,默认仅提供WScript.Shell、Scripting.FileSystemObject等有限的宿主对象,所有内置的进程信息查询能力最终都依赖WMI实现,WMI禁用后原生接口全部失效。

可选实现方案

方案1:调用PowerShell获取结果(无需额外编译程序)

Vista及以上版本Windows默认预装PowerShell,XP也可手动安装,PowerShell无需依赖WMI即可枚举进程路径,你可以在VBScript中调用PowerShell命令捕获输出后解析。
示例代码:

Set WshShell = CreateObject("WScript.Shell")
' 调用PowerShell输出进程ID、进程名、路径,转换为CSV格式方便解析
Set execObj = WshShell.Exec("powershell -Command ""Get-Process | Select-Object Id,Name,Path | ConvertTo-Csv -NoTypeInformation""")
result = execObj.StdOut.ReadAll()
' 按行拆分后逐行按逗号解析即可得到所有进程的路径信息
WScript.Echo result

方案2:编译原生Win32程序调用系统API

如果目标环境无PowerShell可用,可编译独立原生程序调用以下Win32 API实现需求:

  • 调用CreateToolhelp32Snapshot创建系统进程快照
  • 调用Process32First/Process32Next遍历所有进程条目
  • 调用OpenProcess获取进程句柄
  • 调用GetModuleFileNameEx获取进程对应的可执行文件全路径
    编译后的程序将结果输出到控制台,VBScript通过WScript.Shell.Exec调用该程序并读取输出解析即可。

注意:两种方案都需要对应权限才能获取系统级进程、其他用户运行进程的全路径,普通用户权限下仅能读取当前用户启动的进程路径。


内容的提问来源于stack exchange,提问作者BrickByBrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:09:00