【问题】公司做了Exchange 和 O365的混合部署,用户账号都是从本地AD同步到Azure AD的。O365的登录名格式是 userName@domainName.com,它看上去像是一个电子邮件地址。但严格意义上来说,它并不是电子邮件地址而是UPN。
而由于涉及到不同的子域,AD 里用户的UPN 和电子邮件地址是不一样的,之前用户的UPN采用的是各个子域的域名后缀,比如总部用户的UPN是 name@A.com,中国子域用户的UPN是 nameCN@cn.A.com.
为保持用户一致性的登录体验,需要把所有域里的UPN和Email地址做个匹配,这样也便于后续的用户支持(通常用户会把这个地址当成电子邮件地址,后续如果遇到问题,把UPN 设置成和email地址一样,就便于跟用户沟通)
【处理】
i. 获取AD 用户
PS C:\ > $sam = get-aduser -filter * -SearchBase "ou=user, dc=cn,dc=a, dc=com" -properties mail
ii. 检查用户帐号的mail 属性和 UPN 属性
PS C:\ > foreach ($v in $sam) { $v.mail}
PS C:\> foreach ($v in $sam) { $v.userprincipalname}
iii. 把UPN修改成跟Email地址一样
PS C:\ > foreach ($v in $sam) { set-aduser $v -replace @{userPrincipalName=$v.mail}}