Azure AD配置中IsSoftDeleted始终返回null的问题求助
问题
根据微软文档,IsSoftDeleted会在以下任一条件满足时返回true:
- Azure AD中用户被禁用(
accountEnabled = False) - 用户在Azure AD中被软删除
- 用户曾被分配至应用后取消分配,且同步配置设置为“同步已分配的用户和组”
- 用户曾符合用户属性映射部分的范围筛选条件,现在不再符合
但在配置属性映射时,IsSoftDeleted始终返回null,尝试了多种表达式写法均未得到预期结果:
[IsSoftDeleted]→ 返回nullNot([IsSoftDeleted])→ 返回nullSwitch([IsSoftDeleted], , "False", "True", "True", "False")→ 返回null(未匹配任何值,默认返回null)Switch([IsSoftDeleted], "False", "False", "True", "True", "False")→ 返回False(未匹配任何值,默认返回False)Switch([IsSoftDeleted], "True", "False", "True", "True", "False")→ 返回True(未匹配任何值,默认返回True)
替换为布尔值(false/true)后结果仍不符合预期,请问如何正确启用IsSoftDeleted功能?
解决方案
1. 确认触发条件与同步范围设置
- 先确保目标用户满足至少一个
IsSoftDeleted的触发条件:比如手动禁用Azure AD用户、软删除用户、取消该用户的应用分配(需同步范围设置为**“同步已分配的用户和组”**),或者用户不再符合预配的范围筛选规则。 - 检查应用同步范围:若设置为“同步所有用户和组”,用户取消分配不会触发
IsSoftDeleted标记,必须切换为“同步已分配的用户和组”才会生效。
2. 修正属性映射的表达式写法
IsSoftDeleted是系统生成的布尔类型属性,直接引用即可,无需转换为字符串。正确的Switch表达式应针对布尔值匹配:Switch([IsSoftDeleted], true, "True", false, "False", "Null")- 避免将布尔属性当作字符串值(如
"True"/"False")进行匹配,这会导致无法命中分支,返回默认值。
3. 触发完整同步周期
- 增量同步可能无法更新
IsSoftDeleted的状态,需手动触发完整同步:- 进入Azure门户,找到目标企业应用
- 进入“预配”页面,点击“重置同步”
- 确认重置后,启动一次完整预配任务
4. 检查预配日志验证属性值
- 查看应用的预配日志,确认
IsSoftDeleted是否被正确计算:- 在预配页面点击“查看预配日志”
- 搜索目标用户,查看日志中的属性详情,确认是否存在
IsSoftDeleted的记录及对应值
5. 确保预配代理为最新版本(本地AD同步场景)
- 如果是通过Azure AD Connect同步本地AD用户到Azure AD,检查预配代理版本:旧版本可能存在属性计算的bug,更新代理后重新执行同步。
内容的提问来源于stack exchange,提问作者jignesh patel
相关产品推荐
相关产品推荐

