回收后基于apppool获取进程ID
Get process ID based on apppool after a recycle
我们的应用程序池每晚 02:00 左右回收。我想在回收后创建一个进程转储,但进程 ID 在回收后发生变化。
如何根据apppool标识(用户名运行进程)或apppool名称获取回收apppool的进程ID?
我试过了运行:
appcmd list wp
这给了我名字 + id。我如何使用 powershell 过滤此结果以仅将基于特定名称的 ID 保存到变量中?
我在想类似的事情:
$processId = appcmd list wp | Where-Object {$_.apppool -eq "MyApp_web"}
提前致谢,
蒂姆
EDIT:
$workerprocess = appcmd list wp /apppool.name:"MyApp_Web"
returns the following: WP "6816" (applicationPool:MyApp_Web)
现在我只想要这个进程的 ID,而不是所有其他数据
EDIT 2 : Thanks to Vesper
$WebWorker = appcmd list wp /apppool.name:"MyApp_Web"
if ($WebWorker -match "\d+") { $WebId=$matches[0] }
Write-Host
对于您的情况,您需要做的就是从字符串中获取 PID。由于 PID 是一个数字序列,您可以使用正则表达式匹配来获取匹配区域,如下所示:
if ($workerprocess -match "\d+") { $pid=$matches[0] }
这将 return 6816
出你的字符串。
我们的应用程序池每晚 02:00 左右回收。我想在回收后创建一个进程转储,但进程 ID 在回收后发生变化。
如何根据apppool标识(用户名运行进程)或apppool名称获取回收apppool的进程ID?
我试过了运行:
appcmd list wp
这给了我名字 + id。我如何使用 powershell 过滤此结果以仅将基于特定名称的 ID 保存到变量中?
我在想类似的事情:
$processId = appcmd list wp | Where-Object {$_.apppool -eq "MyApp_web"}
提前致谢,
蒂姆
EDIT:
$workerprocess = appcmd list wp /apppool.name:"MyApp_Web"
returns the following: WP "6816" (applicationPool:MyApp_Web)
现在我只想要这个进程的 ID,而不是所有其他数据
EDIT 2 : Thanks to Vesper
$WebWorker = appcmd list wp /apppool.name:"MyApp_Web"
if ($WebWorker -match "\d+") { $WebId=$matches[0] }
Write-Host
对于您的情况,您需要做的就是从字符串中获取 PID。由于 PID 是一个数字序列,您可以使用正则表达式匹配来获取匹配区域,如下所示:
if ($workerprocess -match "\d+") { $pid=$matches[0] }
这将 return 6816
出你的字符串。