回收后,基于apppool获取进程ID

时间:2015-07-20 12:57:58

标签: powershell iis recycle pid

我们的apppools会在每晚02:00左右回收。我想在回收后创建一个processdump,但是在回收后进程ID会发生变化。

如何根据apppool身份(运行流程的用户名)或apppool名称获取回收的apppool的进程ID?

我试过跑:

appcmd list wp

这给了我名字+ id's。如何使用powershell过滤此结果以仅将基于特定名称的Id保存到变量中?

我在考虑类似的事情:

$processId = appcmd list wp | Where-Object {$_.apppool -eq "MyApp_web"}

提前致谢,

  

编辑:

     

$ workerprocess = appcmd list wp /apppool.name:"MyApp_Web“

     

返回以下内容:WP“6816”(applicationPool:MyApp_Web)

现在我只想要这个过程的ID,而不是所有其他数据

  

编辑2:感谢Vesper

     

$ WebWorker = appcmd list wp /apppool.name:"MyApp_Web“

     

if($ WebWorker -match“\ d +”){$ WebId = $ matches [0]}

     

写主机

1 个答案:

答案 0 :(得分:1)

在您的情况下,您需要做的就是从字符串中获取PID。由于PID是一个数字序列,您可以使用正则表达式匹配来获取匹配区域,如下所示:

if ($workerprocess -match "\d+") { $pid=$matches[0] }

这将从您的字符串中返回6816