Exchange 2010 Find Send Messages

This is a quick one. This cmdlet will help you search the message tracking logs on the hub transport server to see who send emails to external email domains.

Edit properties of Powershell window to width = 120 and height = 500
Run the following cmdlet:
Get-MessageTrackingLog -resultsize unlimited |where-object {$_.Recipients -like ì*@gmail.com, *@yahoo.comî -AND $_.EventId -eq ìSendî} |ft -auto >>C:\External mails.txt

Back-uppen van exchange mailbox DataBase duurt lang

Onlangs heb ik een melding van de servicedesk binnen gekregen dat het back-uppen van de Exchange 2010 server ongeveer 770 uur duurt en dat voor 700 Gb aan mail bestanden.

Toen ik controleerde sinds wanneer de het back-uppen van de mailbox zolang duurde kwamen we er achter dat deze al ruim anderhalve maand geen goede back-ups meer maakte. Na verloop van tijd wordt de back-up afgebroken. Dus bij een calamiteit en de failover database is ook beschadigd kan de back-up wel teruggezet worden alleen met een een database van meer dan een maand oud. Afijn het oplossen van de de back-up heeft prio.
Om te beginnen controleer je de Exchange Server, waarom gaat het back-uppen niet goed als andere back-ups wel goed gaan. Er wordt gebruik gemaakt van Acronis Back-up Solutions. Bij het inloggen op het exchange cluster zijn er 2 nodes. Via EMC zagen we dat de mailbox state van de secondary node in error state stond. In de event viewer werden er om de minut twee errors gemeld. Deze meldingen gaven aan dat de primary node waarvan de kopie gemaakt wordt niet benaderd kan worden.
Via Powershell werdt met het commando get-mailboxbasereplicastatus -identity %db-name% | fl duidelijk dat de laatste datum dat de replica gelopen had op 30 maart was de laatste keer dat er getracht verbinding te maken was de huidige dag ongeveer 3 min geleden dan de controle datum.
Met het commando Update-MailboxDatabaseCopy ñIdentity ìDB_name\Serverî ñDeleteExistingFiles Kon het repliceren van de database hersteld worden.

‘@’, 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!