問題描述:
因IIS進(jìn)程依賴某個(gè)dll文件,觸發(fā)安全軟件告警該dll文件硬鏈接數(shù)超過系統(tǒng)限制攔截IIS進(jìn)程訪問,網(wǎng)站訪問超時(shí)或提示硬鏈接數(shù)問題。
根據(jù)上述情況查看問題dll文件硬鏈接情況,檢查命令如下:
fsutil hardlink list <dll 文件具體路徑>
示例問題dll文件如fsutil hardlink list C:\Windows\SysWOW64\bcryptprimitives.dll
問題dll文件除保留系統(tǒng)補(bǔ)丁更新引用的硬鏈接,同時(shí)存在多個(gè)指向winsxs 下 PendingDeletes 目錄的硬鏈接列表,對(duì)比其它在用服務(wù)器上述目錄無(wú)多個(gè)此dll文件硬鏈接
C:\Windows\winsxsTemp\PendingDeletes
相關(guān)命令:
檢查指定文件的文件ID
fsutil file queryFileID <文件具體路徑>
Dism以及 SFC命令
因操作系統(tǒng)為Windows 2008 R2,不支持Dism 選項(xiàng) /startcomponentcleanup
使用 dism /online /cleanup-image /spsuperseded 進(jìn)行操作
使用 dism /online /cleanup-image /scannhealth 檢查組件存儲(chǔ)損壞,未發(fā)現(xiàn)有關(guān)問題dll文件的日志記錄
SFC /SCNNOW
指定具體文件的完整性檢查
sfc /VERIFYFILE= C:\Windows\SysWOW64\bcryptprimitives.dll
上述操作檢查問題dll 文件正常
磁盤清理
要求安裝桌面體驗(yàn)功能,在磁盤屬性點(diǎn)擊"磁盤清理"
注:Windows 2012以及后續(xù)版本已支持上述操作,不用安裝桌面體驗(yàn)功能
在進(jìn)行"磁盤清理"操作重啟,執(zhí)行檢查命令未正常回收問題dll文件的緩存
PE 下使用Dism++檢查補(bǔ)丁是否未正常安裝
在離線模式下對(duì)系統(tǒng)鏡像還原掛起操作
DISM.exe /Image:D:\SYSTEM\Offline /Cleanup-Image /RevertPendingActions
此操作重啟檢查仍存在問題dll的硬鏈接映射
通過檢查 PendingDeletes 下 dll 與源路徑下bcryptprimitives.dll的文件ID一致,嘗試進(jìn)行刪除 PendingDeletes目錄下有關(guān)問題dll的硬鏈接文件
再次進(jìn)入PE進(jìn)行強(qiáng)制刪除, 重啟服務(wù)器驗(yàn)證已正常使用
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