Windows 11中被Defender隔离的DLL可原路还原:一、通过安全中心→病毒和威胁防护→保护历史记录→筛选“已隔离”→勾选还原;二、用管理员PowerShell执行Get-MpThreatDetection | Where-Object {$_.ThreatStatus -eq 'Isolated'} | Where-Object {$_.FileName -like '关键词.dll'} | Restore-MpThreat -FileName;三、用MpCmdRun.exe -Restore -ListAll查名后执行-Restore -Name "完整文件名"。

Windows 11中刚编译好的DLL文件被Defender自动移走,导致程序启动报错“找不到指定模块”或调试时加载失败——这不是文件丢失,而是Defender将未签名、行为异常或来自非标准路径的DLL识别为潜在威胁并放入隔离区,原始文件仍完整保留在受控存储中,可原路还原。
通过Windows安全中心图形界面还原
这是最直观、零风险的方式,适合单个DLL恢复,能确认文件名、隔离时间与原始路径是否匹配。
第一步:按下 Win + S,在搜索框输入“Windows 安全中心”,点击打开应用。
第二步:左侧导航栏点击“病毒和威胁防护”→向下滚动至“当前威胁”区域→点击右侧“保护历史记录”→再点“查看完整历史记录”。
第三步:在历史记录页面顶部点击“筛选器”下拉菜单,**必须选择“已隔离”**(选“已阻止”或“已删除”都查不到DLL);列表刷新后,按“检测时间”倒序排列,快速定位最新隔离项。
第四步:找到目标DLL文件(注意核对文件名全称、扩展名及原始路径,比如C:\MyProject\bin\Release\plugin.dll),勾选其左侧复选框。
第五步:点击上方“还原”按钮→弹出确认窗口时点“是”。【还原后DLL将严格返回原始路径,若该路径所在文件夹已被删除(如整个bin目录被清空),还原会失败并提示错误】
用管理员PowerShell按文件名模糊还原
当安全中心界面卡死、列表空白,或你只记得DLL部分名称(如“loader”“hook”“x64”)时,PowerShell可绕过UI直接调用底层接口。
方法一:右键“开始”按钮 → 选择“Windows PowerShell(管理员)” → 输入以下命令并回车:
Get-MpThreatDetection | Where-Object {$_.ThreatStatus -eq 'Isolated'} | Where-Object {$_.FileName -like '*loader*.dll'} | Format-List FileName, Path, DetectionTime
方法二:从上一步输出中确认完整文件名(如injector_x64.dll),执行还原命令:
Restore-MpThreat -FileName "injector_x64.dll"
注意:PowerShell中Restore-MpThreat支持-FileName参数,无需先查ID再还原,比传统-ThreatID方式更贴近实际场景;若提示“命令不存在”,说明系统未加载Defender模块,先运行Import-Module Defender即可。
用MpCmdRun.exe命令行精确还原
适用于已知DLL完整名称且需脚本化批量处理的场景,命令执行后立即返回结果,不依赖UI状态。
第一步:按下 Win + R → 输入 cmd → 按 Ctrl + Shift + Enter 以管理员身份运行命令提示符。
第二步:执行命令列出所有隔离项:
"%ProgramFiles%\Windows Defender\MpCmdRun.exe" -Restore -ListAll
第三步:在输出中查找目标DLL的“Threat Name”字段(不是FileName),它通常包含类似PUA:Win32/BundleInstaller或Gen:Variant.Bulimia.123456的标识;记下整行中紧跟在Name:后面的值(如plugin_loader.dll)。
第四步:执行还原命令,**必须用英文双引号包裹文件名,尤其含空格或特殊字符时**:
"%ProgramFiles%\Windows Defender\MpCmdRun.exe" -Restore -Name "plugin_loader.dll"
命令成功后会显示The operation completed successfully.,此时可立即前往原始路径验证DLL是否存在。



















