症状
Exchange Online 邮箱未在 Azure Active Directory (Azure AD) Connect 中预配。
解决方案
有两个 Windows Azure Active Directory 模块可通过 PowerShell 管理 Azure AD。 两者目前都支持。
-
MSOL-有关 MSOL 模块的详细信息,请参阅以下文章: Install-Module Import-module msonlineConnect-MsolService
-
AzureAD-有关 AzureAD 模块的详细信息,请参阅以下文章: Install-Module AzureADConnect-AzureAD
若要解决此问题,请执行以下步骤:
-
通过使用 Azure AD PowerShell 模块确认该对象存在于 Azure AD 中。 UsageLocation参数是必需的,必须填充。 例如,运行以下 cmdlet: Get-MsolUser -UserPrincipalName <UserPrinicipalName or DisplayName> | fl ValidationStatus,UsageLocation,*error*
注意 仅可通过使用MsolUser Cmdlet 查看ValidationStatus参数。
如果 ValidationStatus 参数值不 正常,以下 Microsoft 知识库文章可帮助你识别有关错误的更多详细信息:
2741233 在 Office 365 门户或适用于 Windows PowerShell 的 Azure Active Directory 模块中,你将看到用户验证错误
-
如果在 Azure AD 中不存在该对象,请确保该对象在 Azure AD Connect 范围内。
-
如果该对象存在于 Azure AD 中,请使用 " 获取用户 cmdlet" 确认该对象存在于 Exchange 中。 如果没有结果,请让 Microsoft 提交对象,以便将 Azure AD 中的转发同步到 Exchange Online。 必须使用 ObjectId 参数发出此请求。 可以在 Azure AD 中找到 ObjectId 参数值。 (它将采用 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx形式)的形式显示。 例如,运行以下 cmdlet 之一: Get-MsolUser -UserPrincipalName <UserPrinicipalName or DisplayName> | fl ObjectIdGet-AzureADUser -SearchString <UserPrinicipalName or DisplayName> | fl ObjectId
-
如果用户不存在,请查看源广告转储,验证是否填充了 UserPrincipalName 和 mailNickname 属性的值。
-
如果设置了 userprincipalname 属性值,请使用 Userprincipalname 属性让 Microsoft 提交对象,以便将 Azure AD 中的转发到 Exchange Online。 提供此值,因为它可能不同于你的 PrimarySMTPAddress 属性值。
-
检查 DirSync 错误。 若要执行此操作,请参阅以下支持文章: 识别 office 365 中的目录同步错误标识 office 365 中的 DirSync 预配错误 有关如何进行故障排除的详细信息,请参阅以下文章: 同步过程中的错误疑难解答未同步到 Azure AD 的对象
-
如果存在与另一个对象的冲突,但无法在本地 Active Directory 中找到该对象,请确认不存在导致该问题的仅限群的对象。 你可以通过多种方式执行此操作。 在管理门户中选择 " 用户 -> 来宾用户 ",或在管理门户中查看 "同步错误详细信息" 中的属性。 如果它显示 源锚点为空白,并且 授权来源 为 Cloud,则这是来宾用户。 应删除或更新对象,以减少与同步对象的冲突。 最后,你也可以使用 PowerShell 中的以下 cmdlet 检查此情况。 get-msoluser -userprincipalname John@contoso.com | fl UserType,ImmutableId 结果类似于以下内容:
UserType : Guest ImmutableId :
-
确认在 Azure AD 中已向用户分配了许可证。 这可以在 Azure AD 中和 Exchange Online 中进行检查。 例如: AZURE AD
Get-MsolUser -UserPrincipalName <UserPrinicipalName or DisplayName> | fl *license*
Get-AzureADUser -ObjectId <UserPrinicipalName or DisplayName> | fl *license* Exchange Online Get-Recipient <UserPrinicipalName or DisplayName> | fl SkuAssigne
-
确定是否存在软删除或非活动状态的邮箱。 若要执行此操作,请运行以下 cmdlet: 软删除Get-Mailbox -SoftDeletedMailbox <UserPrinicipalName or DisplayName> 如果邮箱已软删除,可在30天内通过将广告帐户移回作用域或使用 MailboxRestoreRequest cmdlet 恢复内容。 有关详细信息,请参阅 在 Exchange Online 中删除或还原用户邮箱。 激活Get-Mailbox -InactiveMailboxOnly <UserPrinicipalName or DisplayName> 如果邮箱处于非活动状态,请参阅 在 Exchange Online 中恢复非活动邮箱。
-
如果你进行更改以更正同步错误,但仍未解决问题,请使用 UserPrincipalName 属性让 Microsoft 提交对象,以便将 Azure AD 中的转发到 Exchange Online。 请提供此值,因为它可能不同于你的 PrimarySMTPAddress 属性值。 提供 Azure ObjectID参数,该参数现在需要运行转发同步。 Get-MsolUser -SearchString <UserPrinicipalName or DisplayName> | fl ObjectID