You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Defender Endpoint拦截ClickOnce部署的Outlook VSTO插件更新求助

Outlook VSTO插件ClickOnce更新被Windows Defender 365拦截的解决方案

问题背景

使用C# + .NET Framework 4.6.1开发的Outlook VSTO插件,通过CA签名的URL型ClickOnce部署至数千台客户端设备。部分使用Windows Defender 365 for Endpoint的用户出现异常:

  • 首次安装setup.exe可正常完成
  • Outlook重启触发ClickOnce更新时,下载的新版本文件会被Defender直接删除

已尝试无效操作:

  • 将代码签名证书加入客户端「受信任发布者」列表
  • 签署所有未签名的DLL文件

仅临时排除路径%userprofile%\AppData\Local\Temp\Deployment可规避拦截,但该操作存在明显安全隐患,急需合规且安全的解决方案。

报错截图说明:Windows Defender弹窗提示「已删除威胁」,被拦截文件位于%userprofile%\AppData\Local\Temp\Deployment目录下,被标记为潜在风险文件。


可行解决方案

1. 提交Defender误报申诉

  • 登录Microsoft 365 Defender管理门户,进入「威胁管理」-「审核」-「误报/漏报」模块
  • 上传被拦截的插件核心文件(含ClickOnce部署清单、主程序DLL),同时提供CA签名证书、插件功能说明及企业客户身份信息
  • 批量部署的企业客户可联系Microsoft企业支持团队,提供文件SHA-256哈希值,加速白名单更新流程

2. 配置Defender自定义允许规则

基于文件哈希的精准白名单

  • 通过PowerShell生成核心文件的SHA-256哈希值:
    Get-FileHash -Path "PluginAssembly.dll" -Algorithm SHA256
    
  • 在Defender门户创建自定义规则,将生成的哈希值加入「允许的文件哈希」列表,该规则优先级高于全局威胁策略

基于发布者证书的信任规则

  • 将插件签名使用的CA证书导入Defender门户的「受信任发布者库」
  • 创建规则:允许所有由该证书签名的文件执行,仅信任合法签名的文件,比路径排除方式更安全

3. 优化ClickOnce更新机制

  • 调整更新触发时机:避开Outlook启动阶段,改为用户手动触发或Outlook空闲状态下执行更新
  • 自定义更新下载路径:通过修改ClickOnce部署代码,将更新包下载至%userprofile%\AppData\Local\Apps\2.0(ClickOnce默认应用存储目录,Defender对其拦截策略更宽松)

4. 修复证书链信任问题

  • 确保签名证书包含完整的证书链(根CA+中间CA),避免Defender因证书链不完整判定文件可疑
  • 在客户端通过certmgr.msc确认证书已加入「受根信任的发布者」列表,而非仅「受信任发布者」

内容的提问来源于stack exchange,提问作者Cédric Boivin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 20:52:30