微软Exchange-统计AD账号被禁用的邮箱

Exchange是完全依赖于AD的,包括邮箱属性,服务器的架构扩展等。有时候我们会发现,某些员工离职,AD账号已经被禁用,但是他的邮箱依然可用,能够正常收发邮件。可能大家会吐槽,AD账号都禁用了,为什么还能发邮件呢,毕竟都不能登录了嘛。如果这个邮箱有授权给其他人去查看和发送呢?那不就可以收发了嘛。

其实,这也是共享邮箱的实现机制,感兴趣的同学可以去了解一下,什么是共享邮箱哈。

废话不多说,我们一起来看一下如何统计这些AD账号已经被禁用,但是邮箱依然可用的账号吧。打开Exchange shell命令行工具,运行如下命令:

Get-Mailbox-Identity test01 |fl "*Exchange*"

微软Exchange-统计AD账号被禁用的邮箱

我们看到ExchangeUserAccountControl这个属性值是None,表示Exchange认为他的AD账号是启用的(为啥是表示呢,因为这里有个坑,下面说)。

我们再看看另一个被禁用的账号test02,运行命令如下:

微软Exchange-统计AD账号被禁用的邮箱

打脸时候来了,为啥禁用的AD账号,依然是None呢,不按套路出牌呀。实际上经过反复测试和查找资料,这里的确是一个坑,不是所有邮箱都会去找AD去重新同步状态信息。你要问我为什么,我只能让你去问微软了,哈哈。

那么如何让邮箱去找AD同步状态信息呢,需要运行如下命令:

Get-Mailbox-Identity test02 |Set-Mailbox

再运行命令看看:

微软Exchange-统计AD账号被禁用的邮箱

嗯,这下终于跟我们的期望值一样了,不错!

现在归纳一下,如何在邮件服务器上直接统计AD账号禁用的邮箱:

1、让所有账号去找AD同步状态信息

Get-Mailbox -Resultsize unlimited |Set-Mailbox

2、运行完成后,继续运行查找命令

Get-Mailbox -ResultSize Unlimited | ? {$_.UserAccountControl -match “AccountDisabled” -and $_.isLinked -match “false” -and $_.isResource -match “false”} |select-object DisplayName,Alias,Database,ItemCount,TotalItemSize | export-csv c:\disabledwmail.csv

当然可以直接复制到制作为powershell脚本哈。

其实,很多时候我们并不知道这个值可以查看禁用了AD账号的邮箱,我们可以通过绕一点,但是更容易更简单的方式来实现,一起来看下面的脚本

$Users=(Get-Mailbox -ResultSize Unlimited).SAmAccountName

foreach($user in $users) {Get-ADUser -Identity test01 -Properties Enabled |Select-Object Name,Enabled|export-csv C:\\userstatus.csv -encoding utf8}

有人可能觉得这个方法不行,没有筛选出禁用的账号,还要导出来自己手动筛选,很笨。其实很多事情和方法没有对错与好坏,看是否适合自己,想要直接筛选出禁用的账号,也是可以的哈,感兴趣的同学可以自己去研究研究。


分享就到这里,有问题可以随时留言问我。


分享到:


相關文章: