During the course of working through issues, I get asked at least twice a week how to determine which application pool maps to a particular worker process PID (Process ID) on a server. I suppose there are lots of ways to determine this, but here two that come to mind to determine the answer.
The first way, and by far the easiest, is to use one of the new scripts that come in the box called IISAPP.VBS. It is located in the %SystemRoot%\system32 directory. For example:
As you can see, this script makes it very easy to determine what the PID is of each specific Application Pool. This is nice to use when trying to determine which PID you may want to snap a dump of for debugging purposes.
There are others that are cool as well. For more details on the various other scripts that are also included, see this link. I also encourage you to open a command prompt, navigate to your system32 directory on your IIS6 machine then run a "dir iis*.vbs" command and check out the new scripts.
The second way is a bit more obscure and requires that you run the tlist.exe command, which comes with the Debugging Tools for Windows. Here is an example of that, which is fairly interesting:
Note: I snipped all other processes and only left the 4 W3WP.EXE processes that we're interested in.
If you look carefully above, you will see the name of the Application Pool specified directly on the command line for W3WP.EXE! You mean you can call this thing directly? Interestingly enough, there are documented command line options for it. Interesting? No? Bonus points if you can tell me why the last application pool has a Title of "OLEChannelWnd" :)
For those interested parties still left reading, here are the command line options for W3WP.EXE that are documented via -?:
Good night...for now.