Update 7/2/11: The installation steps have been modified to make it clear the script must be executed on the Mailbox server using elevated credentials.

With Exchange 2010 Service Pack 1, you may find that performing a search via Outlook Web App (OWA) results in an error message, “The action couldn’t be completed.  Try again later.” Additionally, Outlook clients operating in Online Mode can no longer search for attachments or embedded emails. 

When this issue occurs, you will see the following events in the application log:

Log Name: Application
Source: MSExchangeIS Mailbox Store
Event ID: 9877
Task Category: Content Indexing
Level: Error
Description:
Content Indexing function 'CISearch::EcGetRowsetAndAccessor' received an unusual and unexpected error code from MSSearch. Mailbox Database: <Database Name> Error Code: 0x80043629

Log Name: Application
Source: MSExchangeIS Mailbox Store
Event ID: 9842
Task Category: Content Indexing
Level: Error
Description:
Function CISearch::EcGetRowsetAndAccessor detected that content indexing was disabled for database '<Database Name>' because of error '0x80041820' from MSSearch.

When you check the CatalogData folder in the same subfolder as the database, you may see that the content indexing files (.CI files) are not growing. If you perform a ResetSearchIndex.ps1 on the index, you may see that the total size of the CatalogData folder only grows to a few KB or a few MB and either no .CI files are generated or only a few .CI files are generated and are only a few KB each.

What causes this issue?

This problem typically is a result of installing or upgrading a multi-role server (a server that has the Mailbox, Client Access, and Hub Transport roles installed) to SP1 and then removing the Hub Transport and Client Access roles, thereby leaving the server with only the Mailbox role installed. 

There is a symbolic link for each language referenced in the registry,  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex\Language.  The symbolic links (ActiveX CLSID of the class used) allow for word breaking and stemming  for the locale corresponding to the language.

During the Exchange 2010 Service Pack 1 uninstall process for the Hub Transport role, setup removes the symbolic links, regardless of the fact that the Mailbox role is still present.  The removal of the symbolic links causes the generation of content indexing files to fail.

How do we resolve this issue?

You will need to execute a script on the affected Mailbox servers that reinstalls the symbolic links:

  1. Download the script Repair-ExchangeSearchSymlinks.ps1 from the Script Center.
  2. Copy the Repair-ExchangeSearchSymlinks.ps1 script to the Scripts directory on the Mailbox server (default installation is C:\Program Files\Microsoft\Exchange Server\v14\Scripts).
  3. On the afflicted Mailbox server, open the Exchange Management Shell by right-clicking the shortcut and selecting “Run as Administrator”.
  4. Within the Exchange Management Shell, navigate to the Exchange Scripts directory.
  5. Within the Exchange Management Shell, run the following script:

    .\Repair-ExchangeSearchSymlinks.ps1

  6. Within the Exchange Management Shell, run the following script (without the symbols [] and substitute the database name(s) for any databases you wish to reset:

    .\ResetSearchIndex.ps1 [-force] <dbname> [<dbname>]...

  7. You will receive an Event ID 109 when the rebuilding of the index starts for each database and an Event ID 110 for each database when the index rebuild has completed.
  8. After receiving Event ID 110 for each database, test to make sure search functions correctly with both OWA and Outlook operating in Online Mode.

Bob Want