帮助中心FAQ

问题描述:

IIS进程依赖某个dll文件,触发安全软件告警该dll文件硬链接数超过系统限制拦截IIS进程访问,网站访问超时或提示硬链接数问题

根据上述情况查看问题dll文件硬链接情况,检查命令如下:

fsutil hardlink list <dll 文件具体路径>

 

示例问题dll文件如fsutil hardlink list C:\Windows\SysWOW64\bcryptprimitives.dll


 

 

问题dll文件除保留系统补丁更新引用的硬链接,同时存在多个指向winsxs  PendingDeletes 目录的硬链接列表,对比其它在用服务器上述目录无多个此dll文件硬链接

C:\Windows\winsxsTemp\PendingDeletes

 

相关命令:

检查指定文件的文件ID

fsutil file queryFileID <文件具体路径>

 

Dism以及 SFC命令

因操作系统为Windows 2008 R2,不支持Dism 选项 /startcomponentcleanup

使用 dism /online /cleanup-image /spsuperseded 进行操作


 

使用 dism /online /cleanup-image /scannhealth 检查组件存储损坏,未发现有关问题dll文件的日志记录

 

SFC /SCNNOW

指定具体文件的完整性检查

sfc  /VERIFYFILE= C:\Windows\SysWOW64\bcryptprimitives.dll

 

上述操作检查问题dll 文件正常

 

磁盘清理

要求安装桌面体验功能,在磁盘属性点击"磁盘清理"

注:Windows 2012以及后续版本已支持上述操作,不用安装桌面体验功能

 


在进行"磁盘清理"操作重启,执行检查命令未正常回收问题dll文件的缓存

 

PE 下使用Dism++检查补丁是否未正常安装

在离线模式下对系统镜像还原挂起操作

DISM.exe /Image:D:\SYSTEM\Offline /Cleanup-Image /RevertPendingActions

此操作重启检查仍存在问题dll的硬链接映射

 

通过检查 PendingDeletes  dll 与源路径下bcryptprimitives.dll的文件ID一致,尝试进行删除 PendingDeletes目录下有关问题dll的硬链接文件

 

再次进入PE进行强制删除, 重启服务器验证已正常使用

cd C:\Windows\winsxs\Temp\PendingDeletes

takeown /f *. bcryptprimitives.dll /r

icacls *. bcryptprimitives.dll /grant Administrators:(F) /t

del /q *. bcryptprimitives.dll

 

参考

https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/how-to-clean-up-the-winsxs-directory-and-free-up-disk-space-on/ba-p/257250

 

https://sspai.com/post/66834