Exchange是完全依賴於AD的,包括郵箱屬性,服務器的架構擴展等。有時候我們會發現,某些員工離職,AD賬號已經被禁用,但是他的郵箱依然可用,能夠正常收發郵件。可能大家會吐槽,AD賬號都禁用了,為什麼還能發郵件呢,畢竟都不能登錄了嘛。如果這個郵箱有授權給其他人去查看和發送呢?那不就可以收發了嘛。
其實,這也是共享郵箱的實現機制,感興趣的同學可以去了解一下,什麼是共享郵箱哈。
廢話不多說,我們一起來看一下如何統計這些AD賬號已經被禁用,但是郵箱依然可用的賬號吧。打開Exchange shell命令行工具,運行如下命令:
Get-Mailbox-Identity test01 |fl "*Exchange*"
我們看到ExchangeUserAccountControl這個屬性值是None,表示Exchange認為他的AD賬號是啟用的(為啥是表示呢,因為這裡有個坑,下面說)。
我們再看看另一個被禁用的賬號test02,運行命令如下:
打臉時候來了,為啥禁用的AD賬號,依然是None呢,不按套路出牌呀。實際上經過反覆測試和查找資料,這裡的確是一個坑,不是所有郵箱都會去找AD去重新同步狀態信息。你要問我為什麼,我只能讓你去問微軟了,哈哈。
那麼如何讓郵箱去找AD同步狀態信息呢,需要運行如下命令:
Get-Mailbox-Identity test02 |Set-Mailbox
再運行命令看看:
嗯,這下終於跟我們的期望值一樣了,不錯!
現在歸納一下,如何在郵件服務器上直接統計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}
有人可能覺得這個方法不行,沒有篩選出禁用的賬號,還要導出來自己手動篩選,很笨。其實很多事情和方法沒有對錯與好壞,看是否適合自己,想要直接篩選出禁用的賬號,也是可以的哈,感興趣的同學可以自己去研究研究。
分享就到這裡,有問題可以隨時留言問我。
閱讀更多 一不小心7332789 的文章