豆子今天遇見個小問題,發(fā)現(xiàn)某個Office365的郵件組的成員組里面居然沒有配置郵件,這樣導(dǎo)致個別用戶沒有收到郵件。為了避免這個情況再次發(fā)生,需要對所有的郵件組都做個檢查。問題在于郵件組可能嵌套了多個組,如果人工去看實在太累,寫了個小腳本掃一下。
創(chuàng)新互聯(lián)是一家專業(yè)從事成都網(wǎng)站設(shè)計、網(wǎng)站制作的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)絡(luò)公司,創(chuàng)新互聯(lián)依托的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站及網(wǎng)站設(shè)計開發(fā)服務(wù)!
因為是嵌套的組,于是很自然的想到了遞歸。指定一個郵件組,去掃一下成員,看看該成員是否配置了郵箱地址,如果這個成員剛好又是一個組,那么調(diào)用自己,重復(fù)上述步驟
function get-member { [CmdletBinding()] [Alias()] [OutputType([int])] Param ( # Param1 help description [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, ValueFromPipeline=$true, Position=0)] [string] $name ) Begin { } Process { $a=Get-DistributionGroupMember $name -ErrorAction SilentlyContinue if($a -eq $null){ return } foreach($b in $a){ if (($b.Recipienttype -eq'Usermailbox') -or ($b.Recipienttype -eq 'MailContact') -or ($b.Recipienttype -eq 'User')){ write-host $b.name -ForegroundColor DarkYellow } else{ if($b.primarysmtpaddress -eq ""){ write-host $b.name -ForegroundColor red } else{ write-host $b.name -ForegroundColor Cyan get-member $b.name } } } } End { } }
簡單測試一下我的函數(shù),結(jié)果如下: 普通用戶(×××),綁定了郵件的組(藍(lán)色),沒有綁定郵件的組(紅色)
成功。