我们正处于从 Exchange 2010 本地迁移到 Office 365 的混合共存迁移过程中。这意味着我们正在运行 ADFS 和“Dirsync”(现在称为 Windows Azure AD Sync)。我们的邮箱迁移工作已经完成了一半以上,因此大约 60% 的用户邮箱在云端,其余 40% 左右仍在本地 Exchange 2010 数据库中。
今天我们发现我们的一位用户有一个本地邮箱和一个 Office 365 邮箱,它们都链接到他的一个 AD 帐户。这意味着如果他在加入域的计算机上打开 Outlook 并进行初始配置,它会使用自动发现将他连接到他的本地邮箱,但如果他登录 Office 365 门户,它会显示他的云邮箱。
更糟糕的是,当邮箱在云端的用户给他发邮件时,邮件只会发到他的云邮箱,而当邮箱仍在本地的用户给他发邮件时,邮件只会发到他的本地邮箱。因此,他无法在一个地方看到所有的邮件。
我们如何“合并”他的邮件数据(最终目的地:Office 365)并确保他的 Outlook“自动发现”Office 365 邮箱并且所有邮件都被路由到该邮箱?
答案1
我的域中也存在同样的问题。有人为已有本地邮箱的用户手动创建了 o365 邮箱
我找到了一种修复方法:
- 以 PST 格式导出 Office 365 邮箱
- 删除 Office 365 用户许可证(这将删除他的云邮箱)
- 从 Office 365 AD 中删除 Office 365 用户:
Remove-MsolUser -UserPrincipalName [email protected] -Force
Remove-MsolUser -UserPrincipalName [email protected] -RemoveFromRecycleBin -Force
- DirSync(在 Office 365 AD 中重新创建用户)
- 为用户重新分配 Office 365 许可证
- 将用户迁移至 Office 365
- 恢复 PST
我认为这样更简单直接。如果需要,您还可以重新迁移本地邮箱(卸载)。
答案2
我决定不通过 Outlook 从云邮箱导出所有邮件,而是删除用户的 Office 365 许可证(或仅删除 EOL 许可证),然后使用 Powershell 永久删除邮箱,再将本地邮箱迁移到云,然后将导出的数据重新导入到新的云邮箱。我知道这样做可行,但似乎有点绕弯子。我最终的做法可能更可行,但还有另一种方法:
- 我更改了内部邮箱上的电子邮件地址以阻止邮件发送到该邮箱,然后我使用 Exchange shell 将内部邮箱导出到 PST。
- 我禁用了内部部署邮箱(基本上是在 Exchange 2010 中删除它 - 以前称为“删除 Exchange 功能”)。
- 我创建了一个新的邮件用户在 Exchange 2010 中,与相关现有用户建立连接。这让我开始了解从本地到 Office 365 的邮件路由所需的对象,该对象称为远程邮箱(看起来你不能使用新的远程邮箱...工具(如果远程邮箱已经存在)。创建邮件用户时,我确保目标地址是
<user alias>@<our custom domain>.mail.onmicrosoft.com
。
一旦对邮件用户对象进行了整理,我发现需要在 Active Directory 属性中进行几项调整:
- 首先,我将正确的回复地址的协议大写代理地址属性。
- 我核实了目标地址属性是
<user alias>@<our custom domain>.mail.onmicrosoft.com
。 - 从另一个正确设置的用户复制,我更改了msExchRecipientDisplayType从空白到
-2147483642
。 - 如上所述,我改变了msExchRecipientTypeDetails从空白到
2147483648
。 - 我变了msExchRemoteRecipientType到
4
。 - 最后,看来我必须填充msExchMailboxGuid属性,结果比看起来更棘手。我发现交换指南使用连接到 Exchange Online 的 PowerShell 会话来配置云邮箱的属性
Get-Mailbox -Identity <alias> | fl
。诀窍是,当它在那里报告时,它位于文本格式和编辑 AD 属性必须输入十六进制格式。我使用了在线转换器(有几个,是我在网上搜索格式不匹配后发现的)获取十六进制版本并更新了 AD 属性。 - 此时,我看起来已经在 AD 中完成了,因此我运行了目录同步,确保没有可怕的错误,然后联系用户再次运行 Oulook 初始配置,它“自动发现”了在线邮箱并且运行正常。
- 此时,我正在完成使用 Outlook 将最初导出的 PST 中的项目复制到在线邮箱中的工作。
一位匿名用户建议使用以下内容,而不是使用 GUID 转换器。这也将允许 Powershell 自动化该过程。
您不需要使用 GUID 转换器,只需从 365 复制 GUID 并更新 Active Directory 中的用户属性即可:
$365MboxGUID = get-mailbox -identity $samaccountname | select -ExpandProperty ExchangeGuid
Set-ADUser $samaccountname -replace @{msExchMailboxGuid=$365MboxGUID}
答案3
谢谢 Mauro!它对我有用,你只需添加-UserPrincipalName
命令,它对我有用!
Remove-MsolUser -UserPrincipalName youruser@youroffice365domain -Force
Remove-MsolUser -UserPrincipalName youruser@youroffice365domain -RemoveFromRecycleBin -F
答案4
为了摆脱云邮箱,我只是从一个订阅更改为另一个订阅,因此 IE 我使用的是 E5,我将我的帐户更改为 Business Premium 但删除了 Exchange Online 选项,然后我将我的邮箱迁移到云端,然后再更改回 E5 订阅。