如果分发组在Exchange 2010上没有任何成员,则电子邮件会发生什么情况

我们在Exchange 2010上有一个发行,很久没有成员了(没有人注意到)。 发到这个组的电子邮件会发生什么? 没有返回消息或任何东西。

不幸的是,所有这些电子邮件都进入了黑洞。 Exchange已经完成了它的工作,它查找了收件人,但没有任何信息,因此放弃了电子邮件。 您需要一个存档/合规性设置来检索这些电子邮件。

另外请注意:您也不会收到任何NDR,该过程按预期完成。

他们不幸地无处可去。 我们已经build立了一个每天运行的PowerShell脚本,如果发现空的通讯组,它会给我们发电子邮件。

只要把它放在一个.ps1文件中,并安排它在任何你喜欢的时间间隔运行。

$FromAddress = "[email protected]" $ToAddress = "[email protected]" $MessageSubject = "Empty distribution groups" $SendingServer = "exchserver.example.com" $groups = Get-DistributionGroup $emptygroups = ($groups | ? { !(Get-DistributionGroupMember $_) }) if ($emptygroups.count -gt 0) { $MessageBody = "The following Exchange distribution groups have no members:`r`n`r`n" $MessageBody += ($emptygroups | Select-Object DisplayName | Out-String) $SMTPMessage = New-Object System.Net.Mail.MailMessage $FromAddress, $ToAddress, $MessageSubject, $MessageBody $SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer $SMTPClient.Send($SMTPMessage) } 

这里是可能的代码更新。 一个更高效的查询,因为它只返回空组的列表。 有一点让人觉得Get-DistributionGroup不知道成员(因此需要Get-DistributionGroupMember cmdlet)。

 $emptygroups = Get-DistributionGroup -Filter {members -eq $null} 

我已经确认可以在Exchange 2010,SP2,RU5v2上运行。

谢谢! 对于我来说,上面的脚本没有什么事情发生 – 不知道它是不同的Powershell版本或类似的(Exchange 2010,Server 2008 R2),但“count”属性中没有任何东西。

我必须replace:

 if ($emptygroups.count -gt 0) { 

附:

 $emptygroupcount = echo $emptygroups | measure if ($emptygroupcount.Count -gt 0) { 

如果有人想知道如何做这个计划,因为“基本”Powershell不能识别Exchange命令,我创build了一个包装batch file,按照http://social.technet.microsoft.com/Forums/exchange/ EN-US / 0cad57bf-1113-4622-AAC3-c3278fa97d72 /如何到日程表-A-的PowerShell脚本,通过调度任务?论坛= exchange2010