‘@’, where ‘@’ cannot be the last character

De klant heeft zijn exchange 2003 omgeving om laten zetten naar exchange 2010. De migratie lijkt hellemaal goed te zijn gegaan. Gebruikers kunnen mailen, krijgen mail, delen agenda’s enz. Echter een specifieke gebruiker merkte op dat zijn uitgaande mail ALIAS niet de juiste is. Waardoor hij vragen krijg van zijn klanten waarom hij een nieuw mail adress heeft. afijn Mail alias aanpassen via EMC normaal gesproken geen probleem.

Echter bij het opvragen van properties van deze gebruiker kreeg ik de volgende melding

Warning:
Object†domain/organizational unit/username†has been corrupted and it is in an inconsistent state. The following validation errors have occurred:
Warning:
ìusernameî is not valid for UserPrincipalName. Valid values are: Strings that includes†
ë@í, where†ë@í†cannot be the last character..

Na veel zoeken en wegen zijn we er achter gekomen dat bij de user propertjes in de Active directory de @contoso.local ofwel de UNP (domein) name niet was ingevuld Voor het aanmaken en wijzigen van gebruikers heeft de klant externe applicaties gebruikt voor het beheer. Deze controleerde blijkbaar niet de de UNP. na oplossen van dit probleem kon de ALIAS in Exchange 2010 zonder probleem worden aangepast.

Tijdens het controleren van dit probleem hebben we een script gebruikt om de exchange 2010 user profiles en distrubution groups te controleren. Blijkbaar hadden 3 gebruikers hier last van en 5 distrubution groups.

Wij hadden een aantal gebruikers met dit probleem. Mocht het zo zijn dat meerdere gebruikers zeg +10 dit probleem hebben. Dan kan het handmatig aanpassen van deze een tijdrovende klus worden. Met PowerShell zijn er diverse mogelijk heden om dit toch vrij globaal op te lossen hierbij een script met een voorbeeld domein die dit zou kunnen oplossen.

$oldSuffix = 'contoso.com'
$newSuffix = 'contoso.local'
Get-ADUser -SearchBase "ou=learning,dc=contoso,dc=local" -SearchScope OneLevel -filter * | ForEach-Object {
$newUpn = $_.UserPrincipalName.Replace($oldSuffix,$newSuffix)
$_ | Set-ADUser -server Contoso-DC01 -UserPrincipalName $newUpn -whatif
}

Door Get-ADUser te gebruiken zorg je er voor dat een bepaalde OU deze aanpassing krijg. Dit heeft als voordeel als je binnen je AD gebruik maakt van diverse OU’s en Domeinen je dit gefaseerd en gecontroleerd kan doen!