2016-12-06 76 views
1

試圖找出找到所有轉發到通訊組列表的郵箱的方法。查找轉發到通訊組列表的交換郵箱

沒有這個運氣,任何人有更好的主意?

$group=Get-DistributionGroup | select PrimarySmtpAddress 
Get-Mailbox | Where-Object { $_.ForwardingAddress -eq "$group" } | Select-Object Name,ForwardingAddress 
+0

很確定你只需要放掉''''''$ group「',並且可能需要選擇該對象的'.name'參數,但是是[Get-DistributionGroupMember](https ://technet.microsoft.com/en-us/library/aa996367(v = exchg.160).aspx)不適合此任務? –

+0

與此相同 – DisplayName

+0

哦,等等我看到$ group是一個數組,需要進行一些更改才能使其工作,但不幸的是,我沒有額外的ATM時間,您是否給了'Get-DistributionGroupMember'一槍? –

回答

1

未測試(PSV2 +; PSv3 +將允許更簡單的語法):

$groupEmailAddresses = Get-DistributionGroup | foreach { $_.PrimarySmtpAddress.ToString() } 
Get-Mailbox | where { $_.ForwardingSmtpAddress -and 
        $groupEmailAddresses -contains $_.ForwardingSmtpAddress.ToString() } | 
    Select-Object Name, ForwardingSmtpAddress 

注意,儘管許多的PowerShell運營商可以在陣列(集合),

  • 陣列操作必須在LHS(左側)
  • 和在RHS(右手邊)必須是(非收藏價值)

在手頭的情況下,-contains告訴我們,在LHS的集合是否有其元素間的單RHS值。

+0

沒有結果爲空:( – DisplayName

+0

@Owl:因爲我沒有權限訪問這些cmdlet,所以我無法自行調查。 |%{if($ _。ForwardingSmtpAddress){$ _。ForwardingSmtpAddress.ToString()}}'看看你是否(a)獲取電子郵件地址,以及(b)如果它們的格式與'$ groupEmailAddresses'。 – mklement0

+0

awww感謝您的試用:P wil check – DisplayName