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

Posted

技术标签:

【中文标题】如何使用 PowerShell 或 VBScript 获取正在运行的应用程序列表【英文标题】:How to get list of running applications using PowerShell or VBScript 【发布时间】:2010-09-16 12:19:18 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

这应该可以解决问题:

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

【讨论】:

【参考方案2】:

这会让你在 PowerShell 中关闭:

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

或更短的版本:

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

【讨论】:

【参考方案3】:

stahler 的答案转换为 PowerShell:

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

$word.tasks | ? $_. 可见 |选择名称

$word.quit()

【讨论】:

啊——让我看起来很懒! (有罪)【参考方案4】:

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

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

【讨论】:

【参考方案5】:

从你正在寻找的命令行:

tasklist /v /v 表示冗长,将包括“应用程序运行每个进程”的列表

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

【讨论】:

tasklist /v 非常慢

以上是关于如何使用 PowerShell 或 VBScript 获取正在运行的应用程序列表的主要内容,如果未能解决你的问题,请参考以下文章

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

如何使用批处理或 powershell 更改 Windows PC 的主机名

如何使用 PowerShell 或 python 脚本读取、编辑或附加存储在 Azure Blob 存储中的 Excel 文件(列和行)

如何更改 powershell 终端颜色或完全关闭颜色编码

如何通过使用标志或参数启动脚本来跳过部分 PowerShell 脚本

如何将Powershell版本从3.0升级到4.0或5.0