合规性不通过,teams 和 outlook 无法使用

近期遇到几例居家办公时 teams 和 outlook 无法正常使用的现象:teams 和 outlook 提示需要登录,但尝试登录后提示 “设备必须符合您所在组织的合规要求” 。

故障现象

teams 和 outlook 提示需要登录,但尝试登录后提示 “设备必须符合您所在组织的合规要求” 。受影响的设备几乎都是 HP EliteBook,在公司网络中一切正常,但离开公司后会出现该故障。

打开公司门户 app 后对合规性进行检查,提示防火墙和防病毒没有启用。

Windows 设备合规检查失败页面,提示设备未启用防火墙和受支持的杀毒软件,因此无法访问公司资源

但是 Windows 安全中心的防火墙都是打开状态,这和描述有点不符。依次进入安全中心的 病毒和威胁防护 - 谁在保护我? - 管理提供程序,看到防病毒确实被关了,但实际上没有办法开启,点 Open app 只会重复打开安全中心的病毒和威胁防护页面。

Windows Security“安全提供程序”页面,显示 Microsoft Defender 防病毒已关闭,而 Windows 防火墙已开启

已经确认的有效方案

暂时还没有找到原因,但有两个方案可以尝试,这两个方案都成功修复过该故障。

方案 1,在组策略中强制开启 Defender

使用管理员权限运行 gpedit.msc,定位到这个位置:

计算机配置
└── 管理模板
    └── Windows 组件
        └── Microsoft Defender 防病毒

把其中的 Turn off Microsoft Defender Antivirus 改为禁用,然后打开 cmd,执行一次策略更新:

gpupdate /force

如果没有提示重启,可以直接去安全中心检查了,可以看到刚刚关着的防病毒已经开启、公司门户中的状态也正常了,使用热点连接测试也没问题了。

方案 2,脚本批量修复服务

这个方案做得比较杂,方案 1 失败了后可以尝试。用管理员身份在 PowerShell 中执行:

# 1. 强行停止安全中心及 WMI 的所有依赖服务(解决 0x8007041B 锁死)
Stop-Service -Name "wscsvc" -Force -ErrorAction SilentlyContinue
Stop-Service -Name "SecurityHealthService" -Force -ErrorAction SilentlyContinue
Stop-Service -Name "iphlpsvc" -Force -ErrorAction SilentlyContinue
Stop-Service -Name "winmgmt" -Force -ErrorAction SilentlyContinue
 
# 2. 修复与温和重置 WMI 存储库
winmgmt /salvagerepository
 
# 3. 重新编译与注册 WMI 安全接口文件(修复防护状态上报接口)
Set-Location C:\Windows\System32\wbem
cmd /c "for %i in (*.mof,*.mfl) do mofcomp %i"
 
# 4. 恢复并启动所有核心安全服务
Set-Service -Name "winmgmt" -StartupType Automatic
Set-Service -Name "wscsvc" -StartupType Automatic
Set-Service -Name "SecurityHealthService" -StartupType Automatic
 
Start-Service -Name "winmgmt" -ErrorAction SilentlyContinue
Start-Service -Name "wscsvc" -ErrorAction SilentlyContinue
Start-Service -Name "SecurityHealthService" -ErrorAction SilentlyContinue
 
# 5. 重置 Windows 安全中心 UI 界面与硬件安全性感知
Get-AppxPackage *Microsoft.SecHealthUI* | Reset-AppxPackage
 
# 6. 恢复 DEP 数据执行保护
bcdedit /set "{current}" nx OptIn

过程中会遇到一些权限不足的提示可以忽略,如果这个方案没成功,可以考虑用 system 权限再运行失败的命令。但这个脚本动的地方太多了,有点让人不放心。。。