Nous avions un groupe de distribution sur Exchange 2010 qui n'avait pas de membres depuis longtemps (personne ne l'a remarqué). Qu'advient-il des courriels qui arrivent dans ce groupe ? Il n'y a pas eu de messages de retour ou quoi que ce soit d'autre.
Réponses
Trop de publicités?Malheureusement, tous ces courriels sont tombés dans le trou noir. Exchange a fait son travail, il a cherché les destinataires mais rien n'existe, il a donc rejeté l'email. Il vous faudrait une configuration d'archivage/de conformité pour récupérer ces courriels.
Notez également que vous ne recevrez pas non plus de NDR, le processus s'est déroulé comme prévu.
Elles ne mènent malheureusement nulle part. Nous avons mis en place un script PowerShell script qui s'exécute quotidiennement et nous envoie un courriel s'il trouve des groupes de distribution vides.
Il suffit de le placer dans un fichier .ps1 et de le programmer pour qu'il s'exécute à l'intervalle de votre choix.
$FromAddress = "exchserver@example.com"
$ToAddress = "itdept@example.com"
$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)
}
Voici une mise à jour du code possible. Une requête plus efficace puisqu'elle ne renvoie qu'une liste de groupes vides. Un peu obtus puisqu'on est amené à penser que Get-DistributionGroup ne connaît pas les membres (d'où la nécessité de la cmdlet Get-DistributionGroupMember).
$emptygroups = Get-DistributionGroup -Filter {members -eq $null}
J'ai confirmé que cela fonctionne sur Exchange 2010, SP2, RU5v2.
Merci de votre attention ! Pour moi, rien ne se passait avec le script ci-dessus - je ne sais pas si c'est une version différente de Powershell ou autre (Exchange 2010, Server 2008 R2) mais il n'y avait rien dans l'attribut "count".
J'ai dû le remplacer :
if ($emptygroups.count -gt 0) {
Avec :
$emptygroupcount = echo $emptygroups | measure
if ($emptygroupcount.Count -gt 0) {
Si quelqu'un se demande comment programmer cela, étant donné que le Powershell "de base" ne reconnaît pas les commandes Exchange, j'ai créé un fichier batch comme suit http://social.technet.microsoft.com/Forums/exchange/en-US/0cad57bf-1113-4622-aac3-c3278fa97d72/how-to-schedule-a-powershell-script-tâches à travers le calendrier?forum=exchange2010