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

如何使用PowerShell或VBScript获取正在运行的应用程序列表,powershell,scripting,vbscript,Powershell,Scripting,Vbscript,我需要使用PowerShell或VBScript以编程方式获取正在运行的应用程序列表,如Windows任务管理器中的“应用程序”选项卡所示 到目前为止,我所能找到的只是如何使用VBScript和WMI列出进程。这应该可以做到: Set Word = CreateObject("Word.Application") Set Tasks = Word.Tasks For Each Task in Tasks If Task.Visible Then Wscript.Echo Task.Name

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


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

这应该可以做到:

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

这将使您接近PowerShell:

get-process | where-object {$_.mainwindowhandle -ne 0} | select-object name, mainwindowtitle
或较短的版本:

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

stahler的答案转换为PowerShell:

get-process | where-object {$_.mainwindowhandle -ne 0} | select-object name, mainwindowtitle
$word=新对象-com'word.application'

$word.tasks |?{$\可见}选择名称


$word.quit

@Steven Murawski:我注意到,如果我使用mainwindowhandle,我会得到一些正在运行的进程,当然,这些进程不在“应用程序”选项卡中。像explorer和UltraMon等,你可以关闭mainwindowtitle,因为我遇到的那个些进程并没有窗口标题,就像这样

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

从要查找的命令行:

tasklist/v该/v表示详细,将包括运行每个进程的应用程序列表

任务列表/v/fi imagenaem eq POWERPNT.EXE
例如,可以用来过滤仅在POWERPNT.EXE进程下运行的应用程序。

Ah-让我看起来很懒!GultyTaskList/v速度非常慢