2008-10-10 62 views
12

我需要以編程方式得到如圖所示的Windows任務管理器裏面的「應用程序」選項卡中使用PowerShell或VBScript運行的應用程序的列表,運行的應用程序的列表。如何獲得使用PowerShell或VBScript

所有我能找到到目前爲止是如何列出使用VBScript和WMI過程。

回答

6

這應該做的伎倆:

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

+0

Aargh .. vbscript !!! :)雖然好回答:) – 2008-10-10 19:43:50

16

這讓你在PowerShell中關閉:

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

或者更短的版本:

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

stahler的回答轉換爲PowerShell的:

$字=新的對象-com 'word.application'

$ word.tasks | ? {$ _。visible} |選擇名稱

$ word.quit()

+0

啊 - 讓我看起來很懶! (有罪) – stahler 2008-10-14 12:52:01

7

@Steven穆拉夫斯基:我注意到,如果我用mainwindowhandle我會得到一些過程,是當然的運行,而不是在「應用程序」選項卡。就像探險家和的UltraMon,等你可以調節關閉mainwindowtitle代替,因爲我遇到的那些過程沒有窗口標題 - 像這樣

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

從命令行你正在尋找:

tasklist /v所述/v意味着冗長,將包括「應用程序中運行關閉每個過程

tasklist /v /fi "imagenaem eq POWERPNT.EXE" 例如可以用於過濾略低於POWERPNT.EXE進程中運行的應用程序列表。