"MigrationPermanentException" error when you move a mailbox from Exchange Online to an on-premises Exchange 2010 server in a hybrid deployment


Assume that you have an Exchange hybrid deployment that includes on-premises Exchange 2010 servers. When you try to offboard or move a mailbox from Exchange Online to an Exchange 2010 server in your on-premises environment, you receive the following error message:

Error: MigrationPermanentException:
You shouldn’t migrate mailbox ‘<username>’ to Exchange 2010 or an earlier version while the user’s Instant Messaging contact list is stored in Exchange. If you do, the user could permanently lose access to their Instant Messaging contact list, which will cause serious data loss. The Exchange copy might be the only copy of this user’s contact list. To continue, please contact your Instant Messaging administrator and make sure that the user’s contact list is moved back to the Instant Messaging server. After this has been done, you should be able to complete this migration. If you must migrate the mailbox despite the potential data loss, you can do so by running ‎’Set-UMMailbox mailboxID -ImListMigrationCompleted $false‎’.

However, when you run the ‎Set-UMMailbox mailboxID -ImListMigrationCompleted $false‎ command as stated in the error message, you receive the following error message:

The Mailbox ‘<username>@contoso.com’ isn’t enabled for unified messaging.


This problem occurs if the Lync 2013 contacts of the user who is associated with the mailbox are stored in the unified contact store in Exchange. By default, if the user signed in to Lync 2013, the unified contact store is enabled for that user. Additionally, the user’s Lync contacts are migrated from the Lync server to Exchange.


Use the Set-Mailbox cmdlet together with the ImListMigrationCompleted parameter instead of the ‎Set-UMMailbox cmdlet. For example, run the following command:

Set-Mailbox <username>@contoso.com -ImListMigrationCompleted $false

After you run the command, perform the mailbox move request.
Note The $false setting in the ImListMigrationCompletedparameter indicates that the user’s contacts haven’t been migrated to Lync to preserve the contact list. Be aware that the solution in this section may result in data loss. Exchange 2010 doesn’t support the unified contact store feature in Lync 2013. Therefore, if you move a mailbox back to Exchange 2010 while the user’s Lync contacts are stored in the unified contact store, the user could lose access to his or her Lync contacts. You should first make sure that the user’s Lync contacts are moved back to Lync server before you move the mailbox to Exchange 2010.

Source: Microsoft TechNet
Mailbox Move MRS

"Performance counter updating error" after you install the Exchange Server 2013 Client Access server role


After you install the Microsoft Exchange Server 2013 Client Access server role on a new server and then restart the server, you receive many Event ID 106 errors in the Application log. For example, you may receive the following error message: ID: 106 Level: Error Source: MSExchange Common Machine: – Message: Performance counter updating error. Counter name is Per-Tenant KeyToRemoveBudgets Cache Size, category name is MSExchangeRemotePowershell. Optional code: 3. Exception: The exception thrown is: System.InvalidOperationException: The requested Performance Counter is not a custom counter, it has to be initialized as ReadOnly.\ When you check the Exchange Setup log (ExchangeSetup.log), you see the following information: [WARNING] The performance counter definition file C:\Program Files\Microsoft\Exchange Server\V15\Bin\Perf\AMD64\GlsPerformanceCounters.xml could not be found.


This issue occur because Exchange Server Setup tries to locate the GlsPerformanceCounters.xml performance counter definition file in the following folder: C:\Program Files\Microsoft\Exchange Server\V15\Bin\Perf\AMD64\ However, Exchange Server Setup should target the following folder instead: C:\Program Files\Microsoft\Exchange Server\V15\Setup\Perf Therefore, the performance counters cannot be loaded.


To resolve this issue, use one of the following methods.

Method 1 Use a script to reload all the performance counters
  1. Copy the following script to Notepad, and then save the file as Perfcounters.ps1. Make sure that you change the “$path” value in the script if the Exchange Server is installed in a different location. (This script also applies to Exchange Server 2010.)
    add-pssnapin Microsoft.Exchange.Management.PowerShell.Setup
    $path = "C:\Program Files\Microsoft\Exchange Server\V15\Setup\Perf"
    $items = Get-ChildItem -Recurse $path
    $files = $items | ?{$_.extension -eq ".xml"} 
    Write-Host "Registering all perfmon counters in $path"
    $count = 0;
    foreach ($i in $files)
       $f =  $i.directory, "\", $i.name -join ""
       Write-Host $count $f -BackgroundColor red
       New-PerfCounters -DefinitionFileName $f
  2. In Exchange Management Shell, run the file that you created in step 1. For example, run the following command:

Note Before you run the script, make sure that the execution policy is set to unrestricted. For more information about execution policies, go to the following Microsoft TechNet website: Using the Set-ExecutionPolicy Cmdlet (http://technet.microsoft.com/en-us/library/ee176961.aspx)

Method 2: Load the missing counters manually
  1. Close Performance Monitor, and then stop any other monitoring services that might be trying to use the missing counters.
  2. In Exchange Management Shell, type the following command, and then press Enter.
    Add-Pssnapin Microsoft.Exchange.Management.PowerShell.Setup
  3. Run New-PerfCounters to add the performance counters. For example, if you want to load the performance counters that are defined in GlsPerformanceCounters.xml, run the following cmdlet:
    New-PerfCounters –definitionfilename “C:\Program Files\Microsoft\Exchange Server\V15\Setup\Perf\GlsPerformanceCounters.xml
Source: Microsoft TechNet
Performance Counters Setup

Exchange 2003 Public Folder Replication Guided Walk Through (GWT)

Just in case you have not seen it, myself and several other engineers have worked hard on the Guided Walk Through (GWT) for Public Folder Replication.  Please check it out on http://support.microsoft.com/KB/842273.

You can read more about it on The Exchange Team Blog at http://blogs.technet.com/b/exchange/archive/2012/11/12/public-folder-replication-troubleshooter.aspx

Source: My Microsoft TechNet Blog


Public Folders Replication Troubleshooter