如何使用PowerShell或VBScript获取正在运行的应用程序列表

时间:2008-10-10 13:16:02

标签: powershell scripting vbscript

我需要以编程方式获取正在运行的应用程序列表,如Windows任务管理器中使用PowerShell或VBScript的“应用程序”选项卡中所示。

到目前为止,我所能找到的是如何使用VBScript和WMI列出进程。

5 个答案:

答案 0 :(得分:17)

这使您在PowerShell中关闭:

get-process | where-object {$_.mainwindowhandle -ne 0} | select-object name, mainwindowtitle

或更短的版本:

gps | ? {$_.mainwindowhandle -ne 0} | select name, mainwindowtitle

答案 1 :(得分:7)

@Steven Murawski:我注意到如果我使用mainwindowhandle,我会得到一些正在运行的进程,当然,但不是在“Applications”选项卡中。就像探险家和UltraMon等一样。你可以改为使用mainwindowtitle,因为我遇到的那些过程没有窗口标题 - 就像这样

gps | ? {$_.mainwindowtitle.length -ne 0} | select name, mainwindowtitle

答案 2 :(得分:5)

这应该可以解决问题:

Set Word = CreateObject("Word.Application")
Set Tasks = Word.Tasks
For Each Task in Tasks
   If Task.Visible Then Wscript.Echo Task.Name
Next
Word.Quit

http://msdn.microsoft.com/en-us/library/bb212832.aspx

答案 3 :(得分:5)

从您正在寻找的命令行

tasklist /v /v表示详细,并将包含“每个流程运行的应用程序列表

tasklist /v /fi "imagenaem eq POWERPNT.EXE" 例如,可用于过滤仅在POWERPNT.EXE进程下运行的应用程序。

答案 4 :(得分:1)

stahler的答案转换为PowerShell:

$ word = new-object -com'word.application'

$ word.tasks | ? {$ _ .visible} |选择名称

$ word.quit()