我需要你的帮助,以制作一个脚本,用于缓解问题的症状,而我们挖掘它,并找到原因。
问题描述:当dll被锁定时,我们遇到了一个问题,这会阻止IIS处理请求。有几个dll可能就是问题所在。我们将它们映射为Windows的例外,但仍然会出现问题。
我们可以通过编写脚本定期访问网站来检测问题,如果问题发生,就会陷入停顿。
这是在Windows2016Server上。
要求:显然需要一个长期的修复,我们正在致力于此。当我们找到这个修复时,我们正在寻找一种方法来找到使用dll的进程并终止该进程。
SysInternals ProcessExplorer可以识别正在访问dll文件的进程(这是双筒望远镜特性)。一旦我们知道了哪个进程,那么我们也可以在ProcessExplorer中终止该进程。
理想的解决方案是一个脚本,它使用指定的dll名称搜索进程,然后杀死它们。我想我们可以使用sysinternals的命令行实用程序,但不知道从哪里开始。
注:理想情况下,我们会解决问题,但它是持续的,所以我们想减轻症状。你们中的一些人可能会建议解决这个问题,如果你有一个解决方案,然后把它发送进来。同时,这里有一些问题可能会被问到.是什么引起了这个问题-如果我们知道.!此问题似乎发生在Windows签名更新运行之后。感觉就像当Windows重新加载新的威胁签名时,内存中的dll不知何故被视为一种威胁。它会不会是真正的威胁-不,因为我们手动扫描了它,它就干净了。
发布于 2019-04-06 09:26:47
你可以用PowerShell。这是一个开始。
备注:
如果一般概念能够为您标识流程,并且默认的停止进程(Es)对所讨论的流程有效,这将是有用的:
$ModulePathToFind = "C:\\Windows\\System32\\msxml6.dll"
$KillIt = $false
foreach ($p in Get-Process)
{
foreach ($m in $p.modules)
{
if ( $m.FileName -match $ModulePathToFind)
{
write-host "Found:" $m.FileName "in" $p.Name "ID:" $p.id
if ($KillIt)
{
write-host "In 'Kill' mode."
Stop-Process -Id $p.id -Force
}
else
{
write-host "Not in 'Kill' mode."
}
}
}
}https://stackoverflow.com/questions/54310513
复制相似问题