Upgrade von Distribution Groups von Exchange 2003 auf Exchange 2010 SP1

Werden Exchange 2003 mailenabled Gruppen auf Exchange 2010 hochgestuft, so kann dies entweder über die Exchange Management Console durchgeführt werden oder natürlich auch über die Exchange Management Shell. Innerhalb der Exchange Console braucht man nur die Gruppe anzufassen. Klickt man anschließend auf "Apply" so erscheint folgender Hinweis:

Ist für die Verteilerliste ein Owner eingetragen, so kann dieser auch nachdem die Verteilerliste hochgestuft worden ist über den Outlook Client die Verteilerliste bearbeiten.

Ein Problem entsteht allerdings wenn weitere Benutzer Rechte in Exchange 2003 bekommen haben die Verteilerliste in Outlook zu bearbeiten und dies nicht über eine Security Gruppe im "Managed by" Attribut durchgefuehrt worden ist. Um weitere Benutzer zum Bearbeiten der Mitgliederschaft in Exchange 2003 freizuschalten wird dies über die Security-Seite durchgeführt.

Diese beschriebene Vorgehensweise bei der Administration findet man recht haeufg. Unabhaengig ob die Verteilerliste bereits hochgestuft wurde, kann der Owner (ManagedBy) und alle Benutzer die obiges "WriteMembers" Recht gesetzt haben in Outlook die Verteilerliste bearbeiten, solange die Benutzer sich noch auf einem Exchange 2003 Server befinden. Wird nun die Verteilerliste auf Exchange 2010 hochgestuft, so wird der Owner übernommen und kann die Verteilerliste wie gewohnt bearbeiten. Auch sind die Benutzer, die über das "WriteMembers" Recht berechtigt worden sind weiterhin in der Lage die Verteilerliste zu bearbeiten.

Wird allerdings ein Benutzer, der über das "WriteMembers" Recht berechtigt worden ist auf Exchange 2010 verschoben, so erscheint auf einmal folgende Fehlermeldung innerhalb von Outlook.

Schaut man sich die Eigenschaften der hochgestuften Verteilerliste in der Exchange Management Console an, so sieht man lediglich, dass unter "Managed by" der Besitzer eingetragen ist, allerdings fehlt ein Eintrag für den Benutzer2, der zuvor innerhalb von Exchange 2003 über das "WriteMembers" Recht berechtigt worden ist.

Sind mehr als nur ein paar Verteilerlisten auf die beschriebene Art berechtigt worden, so hat man als Administrator mehr und mehr Probleme, je mehr Verteilerlisten und Benutzer nach Exchange 2010 verschoben werden. Um dieses Problem zu lösen kann man folgendermassen vorgehen:

1. Auslesen des "WriteMembers" Recht aller Verteilerlisten.

2. Hochstufen der Verteilerlisten auf Exchange 2010.

3. Nachträgliches hinzufügen aller Benutzer die "WriteMembers" gesetzt haben unter dem Owner Attribut der Verteilerliste.

 Über die folgende Query kann man das Recht "WriteMembers" innerhalb der Exchange Management Shell auslesen:

get-distributiongroup * | get-adpermission | Where-object {($_.AccessRights -eq 'WriteProperty' -and $_.Properties -like '*Member*' -and $_.User -like 'ACME\*' -and $_.User -notlike 'ACME\Exchange Wi*')}|fl user,id*

Der Domänenname muss angepasst werden und gegebenenfalls müssen diverse nicht interessante Gruppen wie die Exchange Windows Permissions ausgeblendet werden.

Um nun alle erwähnten Probleme zu lösen, kann man über ein kleines Exchange Management  Shell Skript die Verteilerlisten auf Exchange 2010 hochstufen und alle Benutzer, die nur über das "WriteMembers" Recht berechtigt worden sind unter dem "Managed by" Feld eintragen.

$user = get-distributiongroup verteiler1| get-adpermission | Where-object {($_.AccessRights -eq 'WriteProperty' -and $_.Properties -like '*Member*' -and $_.User -like 'ACME\*' -and $_.User -notlike 'ACME\Exchange Wi*')}|select user
del datei.txt
$User > datei.txt
$file = get-content datei.txt

$index=0

$user1=$file[$index]

While(1)
{
 if ($user1 -eq $null)
  {
  break
  }
 if ($user1 -like "ACME*")
  {

$t = get-user $user1.Replace(" ","")

set-distributiongroup -id Verteiler1 -BypassSecurityGroupManagerCheck –Confirm:$false -ManagedBy ((get-distributiongroup Verteiler1).Managedby + $t.DistinguishedName)

  }
 write-output $user1
  $index=$index+1
  $user1=$file[$index]
}

Das Skript soll lediglich zeigen wie die Vorgehensweise funktionieren kann. Will man das Skript für alle Verteilerlisten verwenden, muss es entsprechend angepasst werden.

Bei dem ersten Aufruf des Skripts sieht man, dass der Benutzer1 als bereits schon existierend einen Fehler produziert. Wird das Skript ein zweites mal aufgerufen, sieht man nun die gleiche Fehlermeldung für den Benutzer2 , der ja nur über das "WriteMembers" Recht in Exchange 2003 berechtigt gewesen ist.

 Überprüft man die Einträge in der Exchange Management Console, so sieht man nun zwei Einträge unter dem "Managed by" Attribut.