Archives for category: Exchange 2016

Ran into an issue migrating from Exchange 2010 to Exchange 2016 on premise. Two mailboxes got to 95% and stopped TransientFailureSource. Looking at the logs I found the error “Transient error MapiExceptionNotFound has occurred. The system will retry”.

RESOLUTION

I found that the Content Index Databases on the Destination Exchange 2016 DAG were failed and suspended. I got them healthy again and was able to repair the mailboxes on the Exchange 2010 MBX server by running this command in EMS

New-MailboxRepairRequest -Mailbox userID -CorruptionType SearchFolder, AggregateCounts, ProvisionedFolder, FolderView

To verify the repair had finished I created a new view on the Exchange 2010 Event Viewer with the following settings. Event ID 10048 confirmed it was complete

Event-Viewer-Exchange-Health

I then restarted the mailbox migration and everything completed successfully.

 

Advertisements

Today I setup two brand new Exchange 2016 Servers running CU6. Created IP-Less DAG and multiple databases. I noticed that the databases Content Index State was Failed. I tried the usual

Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failed”}

Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failedandsuspended”}

Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failed”} | Update-MailboxDatabaseCopy -CatalogOnly

Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failedandsuspended”} | Update-MailboxDatabaseCopy -CatalogOnly

NONE of those worked.

RESOLUTION:

I changed the databases activation preferences from 1 to 2 on each of the hosting servers. Shortly after the databases began to crawl and then showed healthy.

Migrating users from an Exchange 2010 SBS server to Exchange 2016 I noticed that after one mailbox had completed the user was prompted to quit and restart outlook. But after the user did that nothing happened and their profile was still connected to the Exchange 2010 server. I tried to create a new profile but it wouldn’t complete giving me the infamous message

“Action cannot be completed. The connection to microsoft exchange is unavailable”

After double and triple checking my URL’s SCPs etc… I found that recycling the “MSExchangeAutodiscoverAppPool” service on the Exchange 2016 Server resolved the problem.

  1. Open IIS on the Exchange 2016 Server
  2. Click on Application Pools
  3. Right Click on “MSExchangeAutodiscoverAppPool”
  4. Choose Recycle

You can either recycle the app pool each time you migrate a mailbox or check out the MS KB that guides you through setting it up to recycle every minute.

https://www.iis.net/configreference/system.applicationhost/applicationpools/add/recycling

 

Change User Principal Name for Email Addresses

To fix E-mail authentication in situations where the domain name is test.com and the email account is testusers.com.

Create a new OU named test and new user named Joe User then place him in that new OU

Open Exchange management shell and follow the below steps

1)      Get-ADServersettings

2)      Change the Recipient view root to the New OU created above

3)      Set a variable for the users

  1. Get-mailbox
  2. $users = Get-Mailbox
  3. $users | ForEach {Set-User –Identity $_.Identity –UserPrincipalName $_.WindowsEmailAddress –Whatif}
  4. If all completes successfully then remove the –WhatIf statement and run again

4)      Check their AD account properties and click on account then see if it has been changed to their email address. If so then you are safe to do it to either more OU’s or then entire forest.

5)      To change the entire forest do the following

  1. Set-ADServersettings – RecipientViewRoot “test.com”
  2. Set-ADServersettings –ViewEntireForest $true
  3. Get-Mailbox
  4. $users = Get-Mailbox
  5. $users | ForEach {Set-User –Identity $_.Identity –UserPrincipalName $_.WindowsEmailAddress –Whatif}
  6. If all completes successfully then remove the –WhatIf statement and rerun

6)      Verify everything has been modified correctlyImageImageImage