Monday, July 9, 2012

Exchange cross-forest migratie met ADMT: distributielijsten

Bij een cross-forest migratie naar Exchange 2010 gebruiken we tools en een aantal scripts om de juiste eigenschappen van de mailboxen over te krijgen naar de nieuwe omgeving. Bijvoorbeeld door het AD object te kopiëren met ADMT, converteren naar Mail-enabled User in de Exchange Management Shell, overhalen van de overige eigenschappen met Prepare-MoveRequest.ps1 en tenslotte het aanmaken van een remote move request. In dit artikel beschrijf ik hoe je iets vergelijkbaars kunt doen om distributielijsten te migreren.

AD object kopiëren

Om te beginnen migreren we de distributielijsten gewoon als groep met de ADMT tool, als je dit artikel leest dan ga ik ervan uit dat je weet hoe dit in zijn werk gaat. Wanneer we dit met de standaard instellingen uitvoeren dan verschijnen de groepen direct na het kopiëren in de Exchange Management Console onder Recipient Configuration, Distribution Group. Alleen missen de e-mailadressen, die komen niet mee omdat ADMT standaard alle mail-gerelateerde attributen filtert en dus niet kopieert. Een simpele oplossing zou zijn om het volgende uit te voeren:
Get-DistributionGroup | Update-Recipient

Exchange zal nu voor iedere DL de ontbrekende eigenschappen aanvullen, waaronder het aanmaken van een mailadres op basis van de Email Address Policy. Alleen is de kans groot dat je in de bronomgeving andere of meerdere adressen in gebruik had. Om deze mee te migreren kunnen we ADMT zo aanpassen dat hij het mail en proxyAddresses attribuut ook mee kopieert. Dit doen we met een klein stukje vbscript waarmee we de ingebouwde exclusions list van ADMT leeg maken:

Set objMig = CreateObject(“ADMT.Migration”)
ObjMig.SystemPropertiesToExclude = “”

Dit script voeren we uit op de ADMT server, op een x64 server als volgt: C:\Windows\SysWoW64\>cscript ADMTExclusionsWeg.vbs

Wanneer we de groepen nu opnieuw kopiëren zien we dat de mailadressen mee zijn gekomen.

X500 adressen

De gekopieerde DL’s zijn nu beschikbaar in de nieuwe omgeving en zijn te mailen op basis van hun SMTP-adres. Toch kunnen gebruikers melden dat ze de volgende NDR krijgen als ze de DL proberen te mailen:

IMCEAEX-_O=Omgeving_ou=Exchange+20Administrative+20Group+20+28FYDIBOHF23SPDLT+29_cn=Recipients_cn=DL+5FSysteembeheerders3ad@domein.nl
#550 5.1.1 RESOLVER.ADR.ExRecipNotFound; not found ##

De oorzaak is dat Outlook ‘onder de motorkap’ niet aan het SMTP-adres mailt maar naar de legacyExchangeDN waarde van een mailbox of DL. Wanneer de gebruiker nu een ontvanger selecteert uit zijn Outlook cache (.nk2) bijvoorbeeld zal Exchange het bericht sturen aan de legacyExchangeDN waarde zoals Outlook hem kent uit de oude omgeving. Probleem is dat het object in de nieuwe omgeving een nieuwe legacyExchangeDN  waarde heeft gekregen die anders is dan in de oude omgeving, daarom krijgt de verzender bovenstaande NDR.

Dit probleem kunnen we oplossen door de oude waarde van het legacyExchangeDN attribuut als X500 adres toe te voegen in de nieuwe omgeving. Bij de migratie van de mailboxen is dit iets wat het Prepare-MoveRequest.ps1 script gedaan heeft, in het geval van DL’s moeten we dat zelf doen. Nou ja, zelf doen? Daar gebruiken we natuurlijk PowerShell voor.

In de bronomgeving exporteren we de naam en de legacyExchangeDN waardes van de DL’s naar een csv-bestand:

Get-DistributionGroup | select name,legacyexchangedn | Export-Csv .\dls.csv –NoTypeInformation

Dit bestand kopiëren we naar de doelomgeving waar we hiermee de waarde van het legacyExchangeDN atribuut gaan toevoegen als X500 adres:

Import-CSV .\dls.csv | foreach {
$Tijdelijk = (Get-DistributionGroup $_.name).EmailAddresses
$Tijdelijk += [Microsoft.Exchange.Data.CustomProxyAddress]("X500:"+$_.LegacyExchangeDN)
Set-DistributionGroup $_.name -EmailAddresses $Tijdelijk
}

Op deze manier voegen we bij iedere met ADMT gekopieerde DL een X500 adres toe wat gelijk is aan de legacyExchangeDN waarde in de oude omgeving.

Samenvattend

Om distributiegroepen te migreren zorgen we dus eerst dat ADMT de SMTP adressen mee kopieert. Vervolgens voegen we de oude legacyExchangeDN waarde toe als een X500 adres waardoor de groepen ook weer gemaild kunnen worden vanuit de Outlook cache.

No comments: