我可以使用PowerShell 1.0列出进程以及它们的PID和命令行吗?

Tim*_*art 4 powershell powershell-1.0

OP编辑:我的问题预先假定PowerShell是这项工作的最佳工具.有一种更简单的方法来实现我的目标.一位朋友告诉我:iisapp.vbs.它显示我需要的信息,而无需PowerShell.


我正在使用本地运行的几十个ASP.NET网站,当我想调试一个名为foo.site.com的特定网站时,我会执行以下步骤:

  1. 运行Process Explorer(来自SysInternals)并在命令行中找到使用foo.site.com启动的w3wp.exe.

  2. 请注意该w3wp.exe进程的进程ID(PID).

  3. 在Visual Studio中附加到该进程ID.

有没有办法编写PowerShell脚本来打印我的计算机上运行的每个w3wp.exe进程的PID和命令行参数?

当我运行get-process w3wp时,我得到:

> get-process w3wp

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    688      28    44060      64576   226     2.75    196 w3wp
    750      26    48328      68936   225     3.38   1640 w3wp
    989      36    54596      83844   246     4.92   1660 w3wp
    921      33    54344      80576   270     4.24   5624 w3wp
    773      27    48808      72448   244     2.75   5992 w3wp
Run Code Online (Sandbox Code Playgroud)

没有命令行信息:(

谢谢!

编辑:我正在寻找传递给w3wp的命令行参数.

Rao*_*ter 12

gwmi win32_process -filter "name='w3wp.exe'" | select name,processId,commandLine

它应该做的伎俩.我觉得很奇怪PowerShell默认不提供命令行信息.注意:我只在powershell 2.0中测试过,但是因为它使用wmi,所以它应该在1.0中工作.

编辑:Tim Stewart使用的最终版本(为了避免显示问题,请参阅注释):
gwmi win32_process -filter "name='powershell.exe'" | format-table -autosize name,processId,commandLine