Dynamische Gruppen lassen sich nicht auflösen Exchange 2010 Thema ist als GELÖST markiert

kleine praktische Skripte die den Arbeitsalltag erleichtern.
Benutzeravatar
Ulrich Wiedholz
Beiträge: 282
Registriert: Samstag 10. Dezember 2011, 17:19
Kontaktdaten:

Dynamische Gruppen lassen sich nicht auflösen Exchange 2010

Ungelesener Beitrag von Ulrich Wiedholz »

Schreibt man eine Mail an eine Gruppe kann man diese im Normalfall "aufklappen" und so die Gruppe in die einzelnen Empfänger auflösen. Um also festzustellen: "Wer bekommt die Mail eigentlich wenn ich an diese Gruppe schreibe?".

Bei dynamisch erstellten Gruppen funktioniert das nicht! Das hat einfach den Hintergrund, dass dynamische Gruppen (wie der Name schon sagt) sich jederzeit ändern können. Die Auflösung der Gruppe in die einzelnen Empfänger findet erst auf dem Server statt, nachdem dieser die zu sendende Mail erhalten hat.

Unser Problem ist nun, dass der User wissen möchte an welche Empfänger denn nun die Mail verschickt wird, bevor er auf Senden drückt. Leider gibt es hier keine Lösung von Exchange Seite - Zumindest nicht auf dem Exchange 2010.
Aber man kann sich eine Lösung selbst basteln, die diese User im Hinweisfeld der Gruppe anzeigt.
Der User kann dieses Feld einsehen, wenn er die Gruppe mit rechter Maustaste anklickt und sich die Eigenschaften anzeigen lässt.

Auf dem Exchange Server muss zum Schreiben dieses Hinweisfeldes ein Skript ausgeführt werden, dieses Skript kann über die Aufgabenplanung auch automatisiert werden, hier kann man Steuern wie oft am Tag aktualisiert wird.

Hier das Skript für den Exchange Server:

Code: Alles auswählen

# Da dynamische Gruppen des Exchange im Outlook nicht aufgelöst werden können,
# schreibt dieses Skript die Namen der Mitglieder in ein Hinweisfeld, das unter
# den Eigenschaften der Gruppe angezeigt wird.

# Funktion die für jede Gruppe durchläuft
 function write-Eventlog([string]$gname)
 {
   $text = "Die Dynamische Verteilergruppe " + $gname + " wurde aktualisiert."
   $Eventlog = new-object System.Diagnostics.EventLog('Application')
   $Eventlog.MachineName = "."
   $Eventlog.Source = "Verteilergruppen Aktualisierung"
   $Eventlog.WriteEntry($text)
 }

 $groups = Get-DynamicDistributionGroup | select DisplayName, LdapRecipientFilter, RecipientContainer, Notes

 foreach ($group in $groups)
 {
   $members =""
   $objContainer ="LDAP://" + $group.RecipientContainer.DistinguishedName
   $objDomain = New-Object System.DirectoryServices.DirectoryEntry $objContainer
   $strFilter = $group.LdapRecipientFilter

   $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
   $objSearcher.SearchRoot = $objDomain
   $objSearcher.Filter = $strFilter
   $objSearcher.SearchScope = "Subtree"
   $objSearcher.PropertiesToLoad.Add("Name")
   $objSearcher.Sort.PropertyName = "Name"

   $colResults = $objSearcher.FindAll()

   foreach ($Result in $colResults)
   {

    $objMember = $Result.Properties

    if ($objMember.name -ne $null)
    { 
     $members = $members + ", " + $objMember.name
    }
   }

   $members = $members.substring(2,$members.length-2)

   if ($members.Length -ge 1023) #nach 1023 Stellen wird abgeschnitten, aufgrund der Größe des Hinweisfeldes.
   {
   $members = $members.Substring(0,1023)
   }

   if ($members -ne $group.Notes)
   {
     write-Eventlog($group.DisplayName)
     Set-DynamicDistributionGroup -id $group.DisplayName -Notes $members
   }
 }
In diesem Sinne...

Ulrich Wiedholz
UW-Operator.de
JanaAmitty
Beiträge: 7
Registriert: Montag 13. November 2017, 04:17
Kontaktdaten:

Thanks for the post.Really thank you! Will read on... Palko

Ungelesener Beitrag von JanaAmitty »

Thanks for the post.Really thank you! Will read on... Vanantwerp
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast