如何判断一个用户是否在O365上还是本地Exchange服务器上

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断一个用户是否在O365上还是本地Exchange服务器上相关的知识,希望对你有一定的参考价值。

我参考的文章是这个链接。
https://mikefrobbins.com/2018/08/02/determine-if-a-mailbox-is-on-premises-or-in-office-365-with-powershell/

Mike Robbins是一个非常厉害的大牛。

我现在的公司就是把Exchange邮箱迁移到O365平台上,然后用的是国际版E3证书。我得到一个需求就是把迁到云上的用户和没有迁移到的用户做一个统计。因为这个操作是好多人在做迁移,反正也给迁乱了。

我觉得Get-MsolUser 这个命令很不错,但是我的权限是受限的,使用不了.我就想了如下的办法也能实现这种需求。

第一,我先到O365的管理端,导出来所有的有E3证书的用户
第二,其实可以写一个脚本,然后逐个检查用户邮件数据是否真正在O365上,有些用户是为了某些原因直接给指定的E3证书,而数据并未上去。检查的命令就是:

PS C:\> Get-Mailbox -Identity domain account

Name Alias Database ProhibitSendQuota ExternalDirectoryObjectId


domain account_c2203f1a99 domain account NAMPR14DG007-db061 99 GB (106,300,44... e55244b4-be94-4be0-9e4...

这里面会有一个数据库信息,也就是说迁到云上的用户会有一个数据库在O365上。那没有的就是没有迁到云上的。

当然,为了万无一失,还需要其他命令的结果的证明。
比如:
Get-Recipient
PS C:\> Get-Recipient -Identity josh.jin

Name RecipientType


Jin, Josh_c2203f1a99 UserMailbox

这里面的RecipientType 如果是UserMailbox就是O365的用户,如果是MailUser就是没有迁移过来的。

然后再去自己的Exchange服务器,运行以下命令:

Get-Mailbox -Identity 域帐号 | select-object Database,ArchiveDatabase

这里显示用户所在的本地的邮件数据库。

经过上面验证,可以查出用户是否在O365上还是本地邮件数据库。

做系统管理的,除了要熟悉那些图形的界面,还要熟悉Powershell,换句话说,如果你做微软系统维护,不会Powershell那肯定不是合格的管理员。

以上是关于如何判断一个用户是否在O365上还是本地Exchange服务器上的主要内容,如果未能解决你的问题,请参考以下文章

O365结合ADFS限制用户登录地址 - 开篇介绍

易宝典——玩转O365中的EXO服务 之三十八 如何实现现有O365用户邮箱与现有域用户便捷集成

O365通过图形api以其他用户身份发送

如何生成 Azure O365 API 以获取我们使用 php 在 azure 门户上创建的用户详细信息

O365结合ADFS限制用户登录地址 - 配置Claim Rules

o365 和 Exchange 2010 的 EWS 托管 API 的 OAuth 身份验证