【发布时间】:2015-10-09 14:47:31
【问题描述】:
我们的应用程序池在每晚 02:00 左右回收。我想在回收后创建一个 processdump,但回收后进程 ID 发生了变化。
如何根据apppool标识(运行进程的用户名)或apppool名称获取回收的apppool的进程ID?
我试过跑步:
appcmd list wp
这给了我名字 + id。如何过滤此结果以仅将基于特定名称的 Id 保存到使用 powershell 的变量中?
我在想这样的事情:
$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] }
写主机
【问题讨论】:
-
为什么要在回收之后 进行进程转储?这是一个全新的流程,没有什么有趣的发现
-
我正在创建一个监视程序,当进程达到 >90% 的 CPU 时它会关闭。显然,回收后的第一次调用使 w3wp.exe 进程进入 100% cpu。我想要一个进程转储
-
我很确定这是设计使然,请参阅"Compiling on first request" in this article
-
你可以使用/text只返回id:
$WebWorker = appcmd list wp /apppool.name:"MyApp_Web" /text:WP.NAME
标签: powershell iis recycle pid