我们的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]}
写主机
答案 0 :(得分:1)
在您的情况下,您需要做的就是从字符串中获取PID。由于PID是一个数字序列,您可以使用正则表达式匹配来获取匹配区域,如下所示:
if ($workerprocess -match "\d+") { $pid=$matches[0] }
这将从您的字符串中返回6816
。