如何将“w3wp”进程名称转换为 PID 或用户名?(即-“w3wp#29)

nat*_*nat 4 iis iis-6 performance-monitoring

我正在Windows Server 2003 IIS6 Web 服务器上运行一些性能计数器/报告,该服务器的每个网站都在其自己的应用程序池/工作进程用户下运行。

该报告提供了站点的名称,例如:

w3wp#29
w3wp#30
w3wp#31
w3wp#32
Run Code Online (Sandbox Code Playgroud)

我需要工作进程名称(或 PID),以便我可以确定每个与哪个网站相关。

#29、#30、#31 等数字不是 PID,因为当我在任务管理器中启用 PID 视图或在 Sysinternals 进程管理器中启用“命令行”列时,或者使用 iisapp.vbs 脚本时 - PID 的是更长的数字。

我无法找到任何将上述进程转换为应用程序池用户名或至少 PID 的内容,因此我可以使用 iisapp.vbs 脚本将其交叉引用到站点。

我对此进行了研究,确实遇到了一个注册表设置,它可能会满足我的要求,但除非没有其他方法,否则我不想更改注册表:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance]
"ProcessNameFormat"=dword:00000002
Run Code Online (Sandbox Code Playgroud)

关于如何查找或将 w3wp#XX 进程转换为应用程序池用户名或 PID 的任何想法?

谢谢

Sco*_*MVP 5

要交叉引用,您可以使用进程计数器“ID Process”。将其包含在 perf 数据中,它将显示进程的 PID。对于一次性交叉引用来说这很好,但有点痛苦。

如果可以的话,我仍然建议更改注册表。在我看来,注册表更改应该是任何基础构建的一部分。

这是一篇涵盖相同内容并确认注册表更改的博客文章:http : //weblogs.asp.net/owscott/archive/2007/03/19/registry-change-for-perfmon-and-pid-data.aspx