在IIS应用程序池中获取工作进程

时间:2011-02-18 14:52:44

标签: scripting iis-6 wmi windows-server-2003 windows-scripting

我正在寻找一种方法来枚举应用程序池中的虚拟目录(Windows Server 2003)并获取诊断数据(特别是WorkingSet,Private Bytes和Virtual Bytes)。

我已经找到了很多关于如何通过服务器的应用程序池进行枚举,并在其中获取虚拟目录,但是为了获取诊断数据需要做些什么?

基本上我想添加一个脚本来抓取监控应用程序(NAGIOS)的数据。我们有一个脚本已经抓住服务器上前2个正在运行的工作进程,但我们不知道他们属于哪个应用程序池。

感谢。

1 个答案:

答案 0 :(得分:1)

正如您所发现的,这是一个两步过程:您需要查找每个工作进程的资源利用率,并且还需要知道哪个应用程序池对应于每个工作进程。

你已经弄明白了第一部分。以下是如何执行其他部分:在Windows Server 2003中,Windows Server 2003中有一个名为iisapp.vbs的命令行脚本。有关详细信息,请参阅documentation。此命令行工具的输出如下所示:

W3wp.exe PID: 2232 AppPoolID: DefaultAppPool
W3wp.exe PID: 2608 AppPoolID: MyAppPool

只需解析此脚本的输出,您就可以将进程ID绑定到App Pools。然后按ID查找每个进程或过滤现有的枚举进程列表以查找匹配的进程ID。

安全性和所需的特定IIS配置可能还有其他限制。请参阅上面的文档链接。

请注意,Windows Server 2008使用不同的命令appcmd list wp,并且它具有不同的输出格式,因此此解决方案特定于Windows Server 2003.