一次 Office 365 中国版邮箱域名迁移的实践记录
最近在工作中把邮件主域名从旧域名切换到了新域名,同时保留旧域名作为别名。整个过程分了两步:先切邮件地址,一周后再切登录名 UPN。这里记录一下实际操作中踩到的几个坑。
一、环境背景
使用 Azure AD Connect 做目录同步,密码哈希同步已启用,没有本地 Exchange。邮箱全部托管在 Office 365 中国版。需要处理的对象包括:
- 本地 AD 同步的用户邮箱
- 云端的会议室、共享邮箱、设备邮箱
- 云端的 Distribution List 和 Microsoft 365 Group
二、邮件地址切换
本地 AD 用户通过修改 proxyAddresses 和 mail 属性实现。要点是把旧域名的 SMTP: 主地址降级为 smtp: 别名,再新增新域名的 SMTP: 主地址。
执行时发现部分用户原来没有旧域名的 smtp: 别名,于是加了一个 -EnsureOldAlias 开关,确保旧地址作为别名保留下来,避免邮件丢失。
三、云端对象切换的坑
云端资源邮箱在 PowerShell 里执行 Set-Mailbox 时遇到了两个问题:
1. -EmailAddressPolicyEnabled 参数不存在
国际版常用的 Set-Mailbox -EmailAddressPolicyEnabled $false 在中国版中报“找不到参数”。解决方法是直接去掉这个参数,只使用 -EmailAddresses。
2. -PrimarySmtpAddress 参数不存在
在资源邮箱上同样报“找不到参数”。最终发现只需要把新地址设成 EmailAddresses 数组里唯一的大写 SMTP:,Exchange 会自动识别为主地址,不需要再单独调用 -PrimarySmtpAddress。
四、UPN 切换
一周后切换登录名时,本地 AD 修改 UPN 后,云端同步用户的 UPN 没有自动更新。因为中国版 AAD Connect 不支持 SynchronizeUserPrincipalNameUpdates,所以单独跑了一遍脚本,用 Set-Mailbox -MicrosoftOnlineServicesID 把云端 UPN 手动改过来。
五、邮件列表组迁移
提前在云端新建了对应的新域名 Distribution List,然后用脚本把旧组成员复制到新组。子组需要后续手动检查。通知用户以后使用新组地址发邮件,旧组保留一段时间再停用。