有没有办法在 Windows 中获取有关进程的详细信息?

Posted

技术标签:

【中文标题】有没有办法在 Windows 中获取有关进程的详细信息?【英文标题】:Is there a way to get details about a process in Windows? 【发布时间】:2019-01-25 15:09:46 【问题描述】:

我想知道 Windows 中 /proc/[pid]/statusstat 等的替代方案。我知道有任务管理器,但它不显示内核模式时间、用户模式时间等。至少我不知道怎么看那些。有没有办法检查有关 Windows 中进程的详细信息?我试过Cygwin,但它并没有给出所有正在运行的进程的所有pid,cygwin的proc“目录”中只有2-3个。所以,如果有办法,请告诉我。

【问题讨论】:

你看过Get-Command *process*了吗? @Lee_Dailey 我必须在 process 中添加什么?姓名还是身份证? @ShantanuShinde 如果您打开 PowerShell 提示符并运行 Get-Process,它将显示一些有关正在运行的进程的默认信息。要查看它检索到的所有内容(因为默认情况下它不会全部显示),请尝试以下操作:Get-Process | Format-List *。另一种方法是查询性能计数器,使用Get-Counter @ShantanuShinde - 请为此使用内置帮助系统。它真的相当有用。 [grin] 尝试Get-Help Get-Process 了解更多信息... 【参考方案1】:

在 PowerShell 中,您可以使用 Get-Process cmdlet 获取有关系统上运行的一个或多个进程的信息。如果您在没有任何参数的情况下运行 cmdlet,它将列出所有进程。也可以使用进程名(不带扩展名):

Get-Process wmplayer

或者,您可以指定进程 ID,如下所示:

Get-Process -id 25024

默认情况下,PowerShell 将仅显示从 cmdlet(如 Get-Process)返回的对象的某些属性。要查看所有属性及其值,请将输出通过管道传输到 Select-Object cmdlet,如下所示:

Get-Process wmplayer | Select-Object *

在这里,内核模式时间和用户模式时间(例如)将分别显示为PrivilegedProcessorTimeUserProcessorTime。有关Get-Process 的更多信息,请阅读Get-Help Get-Process。如果您是 PowerShell 新手,应注意常见 cmdlet 有别名,这使得它们不那么冗长:

gps wmplayer | select *

如果您正在寻找用于检查进程的 GUI 工具,那么我会推荐 Process Explorer,它比任务管理器强大得多,并且会向您显示有关进程和系统的更详细信息:

【讨论】:

以上是关于有没有办法在 Windows 中获取有关进程的详细信息?的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上获取对等套接字的 PID

Windows 8之前的GetProcessDpiAwareness()

在两个进程之间共享内存(C、Windows)

有没有办法在最小化进程时也从进程中获取屏幕截图?

有没有办法在 Windows 上使用 Qt 列出当前进程?

如何获取绑定到我正在运行的控制台窗口的进程列表,该列表也适用于 Windows 2000?