如何在Azure AD Connect中转换为DateTimeOffset填充employeeHireDate属性
问题
我正在尝试填充类型为
DateTimeOffset的Azure用户属性employeeHireDate,但我在Azure AD Connect函数参考文档中未找到转换为DateTimeOffset的相关参考说明。请问有没有人知道如何使用AD Connect规则编辑器填充DateTimeOffset类型的字段?
我尝试了多种解决方法但均未成功:
- 直接映射:将expirationTime赋值给employeeHireDate
- 表达式写法:
DateFromNum([accountExpires]),其中accountExpires为数字格式日期- 格式转换:
FormatDateTime(CDate([extensionAttribute1]),"yyyy-MM-ddTHH:mm:ssZ")
解决方案
AD Connect同步引擎原生支持自动将合法的UTC日期结构映射到目标DateTimeOffset字段,无需手动做格式字符串转换,你之前尝试的方法只要做小幅调整即可生效:
- 直接映射场景:如果源属性
expirationTime是AD中存储的标准日期类型,不需要额外处理,直接映射时只需确保源值已同步为UTC格式,若仍报错可在映射前添加ConvertToUtc()包裹源字段 accountExpires数字日期转换场景:DateFromNum()返回的是不带时区偏移的本地时间结构,调整表达式为ConvertToUtc(DateFromNum([accountExpires]))即可,同步引擎会自动将返回的UTC日期转换为符合要求的DateTimeOffset格式- 扩展属性日期转换场景:不要手动输出带Z的日期字符串,AD Connect不会自动将字符串识别为
DateTimeOffset类型,调整表达式为ConvertToUtc(CDate([extensionAttribute1]))即可,若你的扩展属性存储的是指定时区的日期,可通过DateAdd()函数调整时差后再转UTC
操作验证步骤
- 打开AD Connect同步规则编辑器,定位到对应用户同步规则
- 新增属性流,目标选择
employeeHireDate,流类型设置为表达式,填入调整后的表达式 - 保存规则后运行预览同步,确认属性流出值为带UTC标识的日期结构,无数据类型报错后执行全量同步即可
内容的提问来源于stack exchange,提问作者omarmallat
相关产品推荐
相关产品推荐

