首页 > 解决方案 > 在没有 WMI 的情况下在 VBScript 中检索进程的完整路径

问题描述

我正在编写一个 VBScript,它需要检索与每个正在运行的进程相对应的可执行文件的完整路径。

tasklist只给出部分信息,我发现的所有其他解决方案都涉及使用 WMI,我不能假设它在我的目标系统上可用。

因此,我的问题与类似,只是我需要明确支持 WMI 不可用(即禁用)的情况。

是否可以在香草 VBScript 中做到这一点?还是我需要编译一个可以调用 Win32 API 函数的本机可执行文件,然后从我的 VBScript 调用它?

标签: windowsvbscriptprocess

解决方案


大概是这样的吧?你明白了……

Option Explicit
Dim strPSCommand, strDOSCommand, objShell, objExec, strPSResults, strText

strPSCommand = "Get-Process | where { $_.Path -ne $null -and $_.Path -ne '' } | Select Path  -Unique"
strDOSCommand = "powershell -executionpolicy bypass -command " & strPSCommand & ""
Set objShell = CreateObject("Wscript.Shell")
Set objExec = objShell.Exec(strDOSCommand)

Do While Not objExec.StdOut.AtEndOfStream
    strText = objExec.StdOut.ReadLine()
    Wscript.Echo strText    
Loop

Set objShell = Nothing
Set objExec = Nothing

推荐阅读