Category Archives: Exchange

How to: Remove Exchange mailbox export requests

After a number of exports or imports, you might need to clean up the failed, completed or other status when running the get-mailboxexportrequest report in PowerShell. To clean these open the Exchange PowerShell and run the below.

Clean Export requests
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
Get-MailboxExportRequest -Status Failed | Remove-MailboxExportRequest

Clean Import requests
Get-MailboxImportRequest -Status Completed | Remove-MailboxExportRequest
Get-MailboxImportRequest -Status Failed | Remove-MailboxExportRequest

(95)

How to export mailboxes to PST in Exchange 2010

A new set of PST export cmdlets, introduced in Exchange 2010 SP1, make it easier for Exchange administrators to export primary and archive user mailboxes to Outlook Data Files (PST). Though not recommended for storing large amounts of enterprise data, Exchange administrators use the Outlook Data Files to back up individual user mailboxes in certain scenarios – such as an employee leaving the business. This can help meet regulatory compliance mandates without having to back up the entire database. Additionally, a PST file can serve as an easy destination for exporting user mailboxes from corrupt databases in order to later import them to a healthy one.

Which users are permitted to export mailboxes to PST?

All users, including administrators, need to be assigned Mailbox Import Export role in order to export mailboxes to PST. This can be done via the Exchange Management Shell. To assign Mailbox Import Export role to a user, run the following cmdlets in the Exchange Management Shell:

New-ManagementRoleAssignment –Role "Mailbox Import Export" –User <user name>

For example:

New-ManagementRoleAssignment –Role "Mailbox Import Export" –User Administrator

lepide_1Figure 1.Assign Mailbox Import Export role to a user

To assign Mailbox Import Export Role to a security group, run the cmdlets:

New-ManagementRoleAssignment -Role "Mailbox Import Export" -SecurityGroup <Security group name>

For example:

New-ManagementRoleAssignment -Role "Mailbox Import Export" -SecurityGroup MailboxExportImportGroup

lepide_3
Figure 2. Assign Mailbox Import Export role to a security group

To check which users have the rights to export mailboxes, run:

Get-ManagementRoleAssignment -Role “Mailbox Import Export” | Format-List RoleAssigneeName

lepide_3Figure 3. Check for users who have the rights to export mailboxes

The location of destination PST

The destination PST file for the mailbox export needs to be in a shared folder that is accessible from Exchange. Share the destination PST folder and provide Read/Write permissions for the Exchange Trusted Subsystem over it.

How to export mailboxes to PST

Mailboxes are exported to PST by creating mailbox export requests. To create an export request for a user mailbox, run:

New-MailboxExportRequest -Mailbox <mailbox name> -FilePath <network share path to the target PST file>

lepide_4Figure 4. Export mailboxes to PST

Note: You can create as many requests as required; but a unique name need to be given for every request after the tenth one (after which Exchange will not generate unique names for requests). To name a request, use the parameter ‘–Name’.

To export an archive mailbox, use:

New-MailboxExportRequest -Mailbox -FilePath –IsArchive

Note: To include or exclude specified folders in the export, use –IncludeFolders or –ExcludeFolders parameter.

Getting the details

To get details about the mailbox request, run:

Get-MailboxExportRequest

lepide_5Figure 5. Get the details about mailbox export

A better way to export mailboxes to PST

Exporting mailboxes to PST using the Exchange Management Shell is not a quick process, and many IT teams find that it is not a viable method when faced with strict deadlines. Specialised Exchange recovery management solutions, like Lepide Exchange Recovery Manager, provide powerful PST export facilities and simplify the whole process of data recovery. Lepide Exchange Recovery Manager also works with all versions of Exchange to ensure maximum compatibility with your Exchange environment.

lepide_6
Figure 6. PST export options in Lepide Exchange Recovery Manager

The solution’s Export Mailboxes dialogue displays some of the important features included:

  • Select mailboxes to export in PST allows easy selection of one or more mailboxes for export
  • Filters provide granular filtering options that can be done according to a date range or item types
  • This solution allows users to browse for the destination, split the Outlook PST file and create Unicode PST

Getting user-friendly details about items, folders and mailboxes exported to PST

With Lepide Exchange Recovery Manager, getting item, folder, and mailbox details exported to PST is easy and the reports provided are simple to understand. The solution shows you information on the export operation, mailbox (es) exported, folders in the exported mailboxes and the messages in the exported mailboxes folders. The screenshot below shows a sample of the operation logs created when multiple mailboxes are exported to PST:

lepide_7Figure 7. Details about the mailboxes exported to PST

Conclusion

Microsoft Exchange (from 2010 SP1 onwards), uses a new set of cmdlets to facilitate exporting mailboxes to PST. The user that performs this operation must be assigned Mailbox Import Export role and the destination PST folder must be accessible from Exchange. If you’re looking for an easier and quicker way to export mailboxes to PST, Lepide Exchange Recovery Manger is a powerful, cost-effective and user-friendly option.

(217)

Fix: Exchange error 0x800ccc6c – Verify that the mailbox exists and that the Exchange receive connectors are configured properly

When having especially SBS 2008 with the POP3 Connector to retrieve mail from an outside mailbox to your internal Exchange server, you may encounter the below error in the Event Viewer.

An error occurred while delivering mail to ‘mailbox@mydomain.com’ on the SMTP server ‘localhost’. The error code was 0x800ccc6c. Verify that the mailbox exists and that the Exchange receive connectors are configured properly.

Thou the error message is misleading, this problem can happen if the POP3 Protocol Errors meet the tolerance of the Exchange SMTP Receive connectors. Exchange will close an SMTP connection after a certain number of protocol errors. The default is 5.

To solve the issue, in my case I had to in increase the value of “MaxProtocolErrors” for the Exchange SMTP Receive connectors from Exchange Management Shell by using the below command.

Set-ReceiveConnector -identify “Name of Connector” -MaxProtocolErrors 999

After this, I have restarted the POP3 Connector retrieval of messages and it worked.

(877)

Fix Error 0x80041820 when searching through OWA

When searching through OWA you might end up with an error saying “The action couldn’t be completed. Try again later“, while users using Microsoft Outlook don’t have any issue.

You might also see the below errors in the event viewer

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 ‘‘ because of error ‘0x80041820’ from MSSearch.

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: Error Code: 0x80043629

This can be solved by doing the following steps

– Check the version of Exchange 2010 installed by running Get-ExchangeServer | Format-List Name, Edition, AdminDisplayVersion (So, version 14.2 is SP2, 15.00 is SP3. If you are still using SP1 I strongly recommend to upgrade to at least SP2).
– Download the correct Service Pack and extract it.
– Run Setup /PrepareAD and Setup /PrepareSchema.
– After this is done restart the services Microsoft Exchange Search Indexer and Microsoft Exchange Information Store.

If this doesn’t work, use the following steps

– Download the script Repair-ExchangeSearchSymlinks.ps1 from the Script Center and copy it to C:\Program Files\Microsoft\Exchange Server\v14\Scripts
– Open Exchange Management Shell and browse to the above folder.
– Run the script with ./Repair-ExchangeSearchSymlinks.ps1
– After this is done restart the services Microsoft Exchange Search Indexer and Microsoft Exchange Information Store.

One last step if this doesn’t work is to reset the indexer and start indexing of the database by doing

– .\ResetSearchIndex.ps1 [-force] []…
– 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.
– After receiving Event ID 110 for each database, test to make sure search functions correctly with both OWA and Outlook operating in Online Mode.

(559)

Fix: Your automatic reply settings cannot be displayed because the server is unavailable

When setting up the automatic reply and out of office from your Outlook 2010 having Exchange 2010 you might have the problem with a pop-up saying “Your automatic reply settings cannot be displayed because the server is unavailable”.

I have managed to solve this with a DNS record in your infrastructure. Create the following SRV record to fix the issue.

Service: _autodiscover
Protocol: _tcp
Port Number: 443
Host: myexchangeserver.mydomain.local

On the client PC run the following to refresh the DNS. Make sure you run the CMD as Administrator

ipconfig /flushdns
ipconfig /registerdns

This should fix the problem and the user will be prompted to enter his Out of office settings.

(35680)

How to: Delete and re-create the Exchange ECP Virtual Directory

To delete the ECP virtual directory of your Exchange server and re-create it from scratch, you can use the below to get the identity of the virtual directory.

get-EcpVirtualDirectory |fl

Use this to remove the virtual directory in question

Remove-EcpVirtualDirectory -identity "MYSERVER\ecp (Exchange Back End)"

Create the new virtual directory use the below

New-EcpVirtualDirectory -externalurl "https://outlook.mydomain.com/ecp" -internalurl "https://myserver/ecp" -Server "myserver.mydomain.local"

(15622)

Fix: Error 500 when loading Shell or ECP on Exchange 2013 SP1

After installing Exchange 2013 with SP1 you might notice that when you open the Management Shell, you will get a bunch of errors with mainly the error 500: Internal Server Error. This can also be seen when you try to access the ECP or OWA on the server in question. This issue is only on Exchange 2013 with SP1 and with Client Access role installed.

The culprit can be the following three:

#1 Time synchronization

On the Primary Domain Controller (PDC) do the below

net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:0.pool.ntp.org
w32tm /config /reliable:yes
net start w32time

On the other DCs and servers do the following

net stop w32time
w32tm /config /syncfromflags:domhier /reliable:no /update
net start w32time


#2 Kerberos issues

Do the following on the effected servers to re-create the Powershell virtual directory.

Get-PowerShellVirtualDirectory -Server | Remove-PowerShellVirtualDirectory
New-PowerShellVirtualDirectory -Server -Name PowerShell
Get-PowerShellVirtualDirectory -Server | Set-PowerShellVirtualDirectory -BasicAuthentication:$false
IISReset

After virtual directory re-creation I have checked its modules in IIS and made sure, that Kerberos module is native and the path to its DLL is correct.

#3 WinRM Extensions

The feature might be missing, do the below to add the feature

Get-WindowsFeature *IIS* #to check if it is installed
Add-WindowsFeature Winrm-IIS-Ext # to install

(14037)

How to: Remove Arbitration mailboxes from Exchange Mailbox servers

Sometimes you would like to uninstall a mailbox server or un-install a mailbox server but when you make the Get-Mailbox -Arbitration -Database DataBase1 you see some mailboxes there. These are there to prevent you from deleting the mailbox database or server. These are used by the Exchange server. You can either move or delete these mailboxes. If this is not the last mailbox server in your setup I would suggest you move them, otherwise delete them or you will not be able to uninstall the server.

Moving the mailboxes
Get-Mailbox -Arbitration -Database EXCHDB1| New-MoveRequest -TargetDatabase EXCHDB2

Disabling the mailboxes
Get-Mailbox -Arbitration -Database EXCHDB1| Disable-Mailbox -Arbitration

Deleting the mailboxes
Get-Mailbox -Arbitration -Database EXCHDB1| Remove-Mailbox -Arbitration -RemoveLastArbitrationMailboxAllowed

If you would like to re-create them, I would suggest the below

Setup.com /PrepareAD /IAcceptExchangeServerLicenseTerms
or
.\Setup /PrepareAD /IAcceptExchangeServerLicenseTerms

(5625)

Fix: Missing Server Configuration in Exchange 2010 management console

When opening the Management Console in your Exchange 2010 you might noticed the Server Configuration node missing. Also you might notice that when you open a mailbox you will not see the size and other information and you will get the yellow lock and no data is shown.

In most cases it would be because you have Outlook installed and you logged in with another user in Outlook. The credentials will be saved in the vault and it will try to log into the Management Console with that user. In fact when you launch the Management Console and click on the Microsoft Exchange On-Premises node, while loading you will notice it uses the user.

You would need to do the following:

– Open a command prompt using “Run as Administrator”
– Run the command “control keymgr.dll”
– Click “Back up vault” and follow the prompts to back everything up
– Remove any credentials related to the other user

After this, try to open the Management Console, if the problem persists a quick restart of the server will do the job.

(2988)

How to: Remove duplicate items from Exchange Mailboxes using Powershell

During an Exchange migration you sometimes have the issues where users complain that there are duplicate entries of their calendar items. This is normal to happen and can be done directly from the server using Powershell . You will need to download the script here and then install Managed API 1.2 or later which can be downloaded here.

Remove-DuplicateItems.ps1 [-Mailbox] <String> [[-Type] <String>] [-Server <String>] [-Impersonation] [-DeleteMode <String>] [-Mode <String>][-WhatIf] [-Confirm] [<CommonParameters>]

The syntax is below:

-Mailbox is the name of the mailbox to process;
-Type determines what folders are checked for duplicates. Valid options are Mail, Calendar, Contacts, Tasks, Notes or All (Default);
-Server is the name of the Client Access Server to access for Exchange Web Services. When omitted, the script will attempt to use Autodiscover;
-When the Impersonation switch is specified, impersonation will be used for mailbox access, otherwise the current user context will be used;
-DeleteMode specifies how to remove messages. Possible values are HardDelete (permanently deleted), SoftDelete (use dumpster, default) or MoveToDeletedItems (move to Deleted Items folder).
-Mode determines how items are matched. Options are Quick, which uses PidTagSearchKey and is the default mode, or Full which uses a predefined set of attributes to match items, depending on the item class.

For this to work you need to setup the impersonation of the user which you will be running the script. This can be done as below for Exchange 2010

New-ManagementRoleAssignment -Name ImpersonationRole -Role ApplicationImpersonation -User administrator

-Name : Can be anything you put in, it’s just a name
-User: Is the user you will be impersonating as

On Exchange 2007 you can use the below command:

Get-ExchangeServer | where {$_.IsClientAccessServer -eq $TRUE} | ForEach-Object {Add-ADPermission -Identity $_.distinguishedname -User (Get-User -Identity User1 | select-object).identity -extendedRight ms-Exch-EPI-Impersonation}

More info on the script here

(10092)