Quantcast
Channel: Practical 365
Viewing all 506 articles
Browse latest View live

How to Export Mailboxes with Exchange Server 2010 SP1

$
0
0

Exchange Server 2010 Service Pack 1 introduced a new method for exporting mailboxes called Mailbox Export Requests.  This new method replaces the previous Export-Mailbox command.

Before we look at how to create a new mailbox export request in Exchange 2010 SP1 there are a few things that you should understand.

Firstly, no accounts are granted the rights to export mailboxes by default.  You need to explicitly grant these rights, even to accounts that are organization administrators.

Secondly, the mailbox export request is processed by the Client Access server role.  Because multiple Client Access servers can exist in a site the request could be processed by any one of them.  To ensure that the path to the export PST file is valid for any Client Access server it has to be a UNC path to network share, not a local path.

Granting User Rights for Mailbox Exports in Exchange 2010 SP1

The first step is to grant the right to export mailboxes to an account in your organization.  In the Exchange Management Shell run the following command.

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

If you’re logged with that user already simply restart your Exchange Management Shell session to be granted access to the new cmdlets.

Creating a Network Share for Mailbox Exports in Exchange 2010 SP1

Next we need to create the network share that will be used as the file path for the exported PST files.  All that is required here is a network share that the Exchange Trusted Subsystem group has read/write permission to.

Exporting a Mailbox with an Exchange Server SP1 Mailbox Export Request

With everything configured properly we can now use New-MailboxExportRequest to start the mailbox export.  The only two required parameters for the command are the file path to the export PST file, and the name of the mailbox to export.

[PS] C:\>New-MailboxExportRequest -Mailbox alan.reid -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxExport                                  exchangeserverpro.net/Company/Users/Head Of... Queued

To view the status of the request use the Get-MailboxExportRequest cmdlet.

[PS] C:\>Get-MailboxExportRequest

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxExport                                  exchangeserverpro.net/Company/Users/Head Of... InProgress

You can also see more detail about the mailbox export request with Get-MailboxExportRequest.

[PS] C:\>Get-MailboxExportRequest -Name MailboxExport | fl

RunspaceId     : c48a9069-e572-4c65-80ea-773e61e5337e
FilePath       : \\esp-ho-ex2010a\pst\alan.reid.pst
SourceDatabase : MB-HO-01
Mailbox        : exchangeserverpro.net/Company/Users/Head Office/Alan.Reid
Name           : MailboxExport
RequestGuid    : 9de3a722-0c82-4e34-98bf-0ff624c47c16
RequestQueue   : MB-HO-01
Flags          : IntraOrg, Push
BatchName      :
Status         : InProgress
Protect        : False
Suspend        : False
Direction      : Push
RequestStyle   : IntraOrg
OrganizationId :
Identity       : exchangeserverpro.net/Company/Users/Head Office/Alan.Reid\MailboxExport
IsValid        : True

An easy way to see the progress of all mailbox export requests is to pipe Get-MailboxExportRequest into the Get-MailboxExportRequestStatistics cmdlet.

[PS] C:\>Get-MailboxExportRequest | Get-MailboxExportRequestStatistics

Name                                   Status                    SourceAlias                           PercentComplete
----                                   ------                    -----------                           ---------------
MailboxExport                          InProgress                Alan.Reid                             20

Exporting an Archive Mailbox with Exchange Server SP1 Mailbox Export Request

You can also export a user’s Personal Archive using mailbox export requests simply by adding the -IsArchive parameter to the command.

[PS] C:\>New-MailboxExportRequest -Mailbox alan.reid -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst -IsArchive

Completing the Mailbox Export Request

When a mailbox export request is completed it remains on the server until it is removed by an administrator using Remove-MailboxExportRequest.

To see all of the completed mailbox export requests run this command.

[PS] C:\>Get-MailboxExportRequest | where {$_.status -eq "Completed"}

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxExport                                  exchangeserverpro.net/Company/Users/Head Of... Completed

And to clear all completed mailbox export requests from Exchange run the following command.

[PS] C:\>Get-MailboxExportRequest | where {$_.status -eq "Completed"} | Remove-MailboxExportRequest

This article How to Export Mailboxes with Exchange Server 2010 SP1 is © 2011 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com


How to Import PST Files into Mailboxes with Exchange 2010 SP1

$
0
0

In a recent article we looked at how to export mailboxes to PST file with Mailbox Export Requests for Exchange Server 2010 SP1.  In this article we’ll look at the process for importing PST files into mailboxes.

In Exchange Server 2010 SP1 importing PST files into mailboxes is performed using Mailbox Import Requests. These are similar to export requests in that they are processed by a Client Access server.

Because multiple Client Access servers can exist in a site there is no way to determine which one will process the request, therefore the PST file to import must be accessible via the UNC path of shared folder.

The account that is performing the import also needs to be explicitly granted the rights to do so, as no accounts have this right by default (even Organization administrators).

Granting User Rights for Mailbox Imports in Exchange 2010 SP1

The first step is to grant the right to import mailboxes to an account in your organization.  In the Exchange Management Shell run the following command.

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

If you’re logged with that user already simply restart your Exchange Management Shell session to be granted access to the new cmdlets.

Creating a Network Share for Mailbox Imports in Exchange 2010 SP1

Next we need to create the network share that will be used as the file path for the PST files to be imported.  All that is required here is a network share that the Exchange Trusted Subsystem group has read/write permission to.

Importing a PST File with an Exchange Server SP1 Mailbox Import Request

To import a PST file to a mailbox we use the New-MailboxImportRequest cmdlet.  In this example the PST file alan.reid.pst is being imported into John Smith’s mailbox.

[PS] C:\>New-MailboxImportRequest -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst -Mailbox john.smith

In some cases you might prefer to import the PST file into sub-folder of the mailbox. You can do this by adding the -TargetRootFolder parameter to the command.

[PS] C:\>New-MailboxImportRequest -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst -Mailbox john.smith -TargetRootFolder "Mailbox - Alan Reid"

The import request will create the target folder and begin importing the PST file contents into it.

You can view the status of the mailbox import request using the Get-MailboxImportRequest cmdlet.

[PS] C:\>Get-MailboxImportRequest

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxImport                                  exchangeserverpro.net/Company/Users/Head Of... InProgress

By piping Get-MailboxImportRequest into Get-MailboxImportRequestStatistics you can also monitor the progress of the import.

[PS] C:\>Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

Name                                   Status                    TargetAlias                           PercentComplete
----                                   ------                    -----------                           ---------------
MailboxImport                          InProgress                john.smith                            10

Importing PST Files into Personal Archives in Exchange Server 2010 SP1

Another way to use mailbox import requests is to import PST files directly into personal archive mailboxes. This is very useful for organizations who want to get rid of all PST files on the network.  All you need to do is add the -IsArchive parameter to the command when importing the PST file to a mailbox user who has been enabled for archiving.

[PS] C:\>New-MailboxImportRequest -FilePath \\esp-ho-ex2010a\pst\archive.pst -Mailbox alan.reid -IsArchive

Completing the Mailbox Import Request

When a mailbox import request is completed it remains on the server until it is removed by an administrator using Remove-MailboxImportRequest.

To see all of the completed mailbox import requests run this command.

[PS] C:\>Get-MailboxImportRequest | where {$_.status -eq "Completed"}

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxImport                                  exchangeserverpro.net/Company/Users/Head Of... Completed

And to clear all completed mailbox import requests from Exchange run the following command.

[PS] C:\>Get-MailboxImportRequest | where {$_.status -eq "Completed"} | Remove-MailboxImportRequest

This article How to Import PST Files into Mailboxes with Exchange 2010 SP1 is © 2011 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Exchange Server 2010 Mailbox Import Request Logging

$
0
0

Exchange Server 2010 SP1 has a useful feature for importing PST files into mailboxes. However if you’ve used this feature a few times you may start to encounter problems with the imports failing, such as when the PST file has corrupt items in it.

Fortunately you can use the built-in logging of mailbox import operations to troubleshoot failed import requests. Each import request creates it’s own report for the import operation that can be accessed using the Get-MailboxImportRequestStatistics command.

Here is an example. First a mailbox import request is started using New-MailboxImportRequest.

[PS] C:\>New-MailboxImportRequest -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst -Mailbox angela.hole

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxImport                                  exchangeserverpro.net/Company/Users/Head Of... Queued

Next, we can see the mailbox import request is in progress.

[PS] C:\>Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

Name                                   Status                    TargetAlias                           PercentComplete
----                                   ------                    -----------                           ---------------
MailboxImport                          InProgress                Angela.Hole                           10

By appending the -IncludeReport parameter to the command we get to see the log for the import operation.

[PS] C:\>Get-MailboxImportRequest | Get-MailboxImportRequestStatistics -IncludeReport

Name                                   Status                    TargetAlias                           PercentComplete
----                                   ------                    -----------                           ---------------
MailboxImport                          InProgress                Angela.Hole                           10

If you run that command the output on screen may be too much to read, so instead you can output it to a text file instead if you wish.

[PS] C:\>Get-MailboxImportRequest | Get-MailboxImportRequestStatistics -IncludeReport | fl >report.txt

By the way here is another tip. If more than one mailbox import request is present then the above command will output all of them, not just the one you are interested in. To get the statistics for just the import request you want you need to know the “identity” of the mailbox import request. You can see that by running this command.

[PS] C:\>Get-MailboxImportRequest | ft name,identity -auto

Name          Identity
----          --------
MailboxImport exchangeserverpro.net/Company/Users/Head Office/Angela.Hole\MailboxImport

That identity string is a bit long to type out. You can just copy and paste it if you want, or use this trick instead.

[PS] C:\>$id = get-user angela.hole
[PS] C:\>Get-MailboxImportRequest -Identity $id.dn

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxImport                                  exchangeserverpro.net/Company/Users/Head Of... Completed

Anyway, back to the log that we want to look at. So once you’ve output the report for an import request to the screen or a text file you will see information such as this:

8/5/2011 11:31:18 PM [esp-ho-ex2010a] 'exchangeserverpro.net/Users/Administrator' creat
ed request.
8/5/2011 11:31:32 PM [esp-ho-ex2010a] The Microsoft Exchange Mailbox Replication servic
e 'esp-ho-ex2010a.exchangeserverpro.net' (14.1.323.0 caps:07) is examining the request.
8/5/2011 11:31:32 PM [esp-ho-ex2010a] Connected to target mailbox 'Primary (edbd7ee2-ac
b6-413a-9736-2851e4f5d122)', database 'MB-HO-03', Mailbox server 'outlook.exchangeserve
rpro.net' Version 14.1 (Build 323.0).
8/5/2011 11:31:32 PM [esp-ho-ex2010a] Request processing started.
8/5/2011 11:31:32 PM [esp-ho-ex2010a] Stage: CreatingFolderHierarchy. Percent complete:
 5.
8/5/2011 11:31:38 PM [esp-ho-ex2010a] Merge initialized for mailbox 'Primary (edbd7ee2-
acb6-413a-9736-2851e4f5d122)': 25 folders total. Estimated data size: 70167 items, 708.
3 MB (742,683,898 bytes).
8/5/2011 11:31:38 PM [esp-ho-ex2010a] Stage: CopyingMessages. Percent complete: 10.
8/5/2011 11:31:38 PM [esp-ho-ex2010a] Copy progress: 0/70167 messages, 0 B (0 bytes)/70
8.3 MB (742,683,898 bytes).
8/5/2011 11:31:39 PM [esp-ho-ex2010a] Merging folder '/Top of Personal Folders/Contacts
 [Contacts]' into '/Top of Information Store/Contacts [Contacts]'.
8/5/2011 11:31:40 PM [esp-ho-ex2010a] Copying 0 items, 0 B (0 bytes). Skipping 0 items,
 0 B (0 bytes).
8/5/2011 11:31:40 PM [esp-ho-ex2010a] Stage: CopyingMessages. Percent complete: 10.
8/5/2011 11:31:40 PM [esp-ho-ex2010a] Copy progress: 0/70167 messages, 0 B (0 bytes)/70
8.3 MB (742,683,898 bytes).

If you’ve had an import request fail then this report should tell you why. Most of the time the failures will probably be due to corrupt mail items in the PST file you’re importing. If that is the case you can simply add the -BadItemLimit parameter to the New-MailboxImportRequest command. If you need to set the bad item limit higher than 50 you’ll also need to add the -AcceptLargeDataLoss parameter as well.


This article Exchange Server 2010 Mailbox Import Request Logging is © 2011 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Getting Started with Email Archiving in Exchange Server 2010

$
0
0

In my first job in IT I was given an email address and a mailbox with a 20mb quota. Thats 20 megabytes. Unthinkable in today’s business world, particularly when you consider Exchange Server 2010′s default storage quotas of +2Gb and the Microsoft “large mailbox vision”.

email-logo

The PST Nightmare

Naturally with such a small mailbox quota the entire organization made heavy use of PST files for storing email. When you had read an email and wanted to keep it, you moved it to the PST file immediately. Every week or so you would go to your Sent Items and move all your recent sent email into the PST as well. Deleted items were emptied automatically when Outlook closed.

Everyone had their own “system” for maintaining their email, but the results were basically the same – you stayed under your mailbox quota by creating a mess of PST files, and permanently deleting anything you didn’t want to keep.

Of course these days PST files are a royal pain for everyone involved. The end users become frustrated when PST files are corrupted seemingly at random, or lost when they switch computers.

The IT administrators become frustrated with assisting end users with those problems, and the escalating cost of storing PST files on file servers.

And the business itself is often frustrated by information that is leaked or lost in PST files, unable to be discovered, searched, or secured.

Email Archiving Solutions

And so an entire industry segment evolved to deliver email archiving solutions to businesses, such as Symantec Enterprise Vault and GFI MailArchiver.

The benefits of these types of email archiving systems are obvious; the valuable information stored in email can be safely and centrally archived in a format that is secure, searchable, and also carries other benefits such as single-instancing, compression, and the ability to locate archives on different tiers of storage and with different backup/retention timelines applied.

Exchange Native Archiving

Unsurprisingly, Microsoft then delivered native email archiving capabilities in Exchange Server 2010. At RTM the feature was somewhat disappointing with a few desirable options missing, such as the ability to locate the archive mailbox for a user on a separate database to their primary mailbox.

However in Exchange Server 2010 SP1 that issue, and many others, were resolved and native archiving became an attractive option for organizations that were beginning to evaluate email archiving solutions.

Personal Archive Mailboxes

Exchange 2010 native archiving involves the provisioning of a personal archive, or archive mailbox, for end users. This is in effect just another mailbox, separate to their primary mailbox, stored in an Exchange mailbox database.

Archiving is enabled on a per-mailbox basis, and each user that is enabled for archiving requires an Enterprise Client Access License (CAL). This isn’t enforced at the software level, it is your responsibility to ensure that you have the correct number of Enterprise CALs for the number of users you intend to enable for archiving.

Further reading:

Archive Databases

Thanks to the improvements in Exchange Server 2010 SP1 the archive mailbox for a user can be located on a different mailbox database to their primary mailbox. The mailbox database can be on the same mailbox server, or a different mailbox server, than the database that hosts the primary mailbox, as long as both servers are located within the same Active Directory site.

This allows you to locate mailbox databases that are dedicated to archive mailboxes on different servers, or on lower tiers of storage (although Exchange 2010 is already designed to run on low cost disk anyway), and apply different backup schedules and retention periods.

And because the archive mailbox database is otherwise the same as any other Exchange 2010 mailbox database, it can have the same high availability by being replicated within a Database Availability Group.

Further reading:

Importing PST Files to Archive Mailboxes

For organizations that already have PST files on the network, one of the goals in the implementation of an email archiving solution may be to import those PST files into the archive so that they can be removed from the network for good. For Exchange Server 2010 native archiving there are two solutions available for this.

The first solution is to perform PST imports into the archive mailboxes. This has been available since Exchange Server 2010 SP1, however it requires that the IT administrators be able to locate the PST files and either manually run PowerShell commands or write a script to perform the import operations.

The second solution is to use the PST Capture Tool that Microsoft released in early 2012. This tool assists with the discovery and import of PST files on the network into either the primary or archive mailbox for Exchange 2010 and Office 365. Although a little more complicated to set up it does solve some of the issues associated with the previous manual approach.

Further reading:

Archiving Email Automatically via Retention Policies

When a mailbox user has been enabled for archiving they are assigned a retention policy.

Exchange 2010 mailbox with retention policy

A retention policy is made up of a group of retention tags – at least one default tag, and then any number of additional policy tags or personal tags.

Although the tags that you are licensed to use in retention policies differ between the Standard and Enterprise CAL, since archiving is an Enterprise CAL feature anyway I will assume that you are entitled to the full range of retention tags.

There is already one default retention policy installed with Exchange Server 2010 so you should take a look at it first before you begin enabling mailboxes for archiving. The outcome of the default policy is that it will archive any items more than 2 years old, unless the mailbox user assigns one of the available personal tags instead.

Exchange 2010 default retention policy

Alternatively you can create your own retention tags and policies to suit your organization’s archiving goals, such as this 30 day archive policy I’ve configured in my test environment.

Exchange 2010 new retention policy

You can add existing mailboxes to the new retention policy when you are creating it, or add them later.

Exchange 2010 add mailbox to new retention policy

Managed Folder Assistant

The Managed Folder Assistant is the agent that processes mailboxes and applies retention tags and performs actions on the mailbox items.

In Exchange 2010 RTM the Managed Folder Assistant operated on a schedule, however in Exchange 2010 SP1 this was changed to a “workcycles” approach instead, where the assistant runs and stops as necessary depending on the load the mailbox server is under at the time. This improves the reliability of the Managed Folder Assistant by increasing the likelihood that it will process all mailboxes in larger environments where a scheduled approach may not be suitable.

You can also manually run the Managed Folder Assistant from PowerShell.

Start-ManagedFolderAssistant -Identity alan.reid

The outcome is quite obvious. Here is the mailbox for Alan Reid prior to the Managed Folder Assistant running.

Exchange 2010 mailbox before archiving

And here is the same mailbox after the Managed Folder Assistant has run.

Exchange 2010 mailbox after archiving

Summary

As you can see from this brief overview, Exchange Server 2010 native archiving can be used to effectively manage the size of mailboxes by automatically moving items into personal archives.

However proper planning should always take place before implementing any email archiving solution. In the case of Exchange 2010 native archiving, considerations include:

  • Is the organization licensed correctly for personal archives?
  • Do the client computers have a compatible version of Outlook installed?
  • Where will the archive databases be located, and will they be replicated within a Database Availability Group?
  • How will the archive database be backed up?
  • Which retention tags and policies will be assigned to mailboxes?

 


This article Getting Started with Email Archiving in Exchange Server 2010 is © 2012 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Changes to Mobile Device Management Cmdlets in Exchange Server 2013

$
0
0

There’s been a few interesting changes to the PowerShell cmdlets for managing ActiveSync in Exchange Server 2013.

Exchange Server 2010 had about 22 ActiveSync-related cmdlets; those named *-ActiveSync*, such as Get-ActiveSyncDevice.

Exchange Server 2013 added two new *-ActiveSync* cmdlets; Get-ActiveSyncDeviceAutoblockThreshold and Set-ActiveSyncDeviceAutoblockThreshold. Those cmdlets basically give us the ability to automatically block “bad behaviour” from mobile devices such as the infamous iOS 6.1 bug.

In addition to those two new cmdlets there are also 8 new cmdlets that somewhat replicate the same functionality of the 8 corresponding cmdlets that have been deprecated.

An example of this is Get-ActiveSyncDevice which has been deprecated, and a new cmdlet Get-MobileDevice steps in to take its place. The deprecated cmdlets still work, but they warn you that they may disappear in future versions of Exchange so if you’re relying on them for scripting you will need to update your scripts accordingly.

Get-MobileDevice does basically the same thing as the previous cmdlet, though it has a new OWAMobileApp parameter that is “reserved for future use”.

For a full list of the new cmdlets here is a table showing the comparison between Exchange 2010 and Exchange 2013.

exchange-2013-mobile-eas-cmdlets

Update: Dave Stork has previously written about “the mysterious Exchange app” and after TechEd 2013 he also wonders “is ActiveSync being deprecated?


This article Changes to Mobile Device Management Cmdlets in Exchange Server 2013 is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Configuring a Default Mobile Device Mailbox Policy for ActiveSync in Exchange Server 2010 and 2013

$
0
0

An Exchange Server organization can have multiple mobile device mailbox policies, but only one can be the default policy.

The default policy is automatically assigned to new mailbox users, and also to those mailboxes that have not been manually reassigned to a non-default policy.

Confusingly, the policy that Exchange Server 2010 and 2013 create automatically during setup is called “Default”. However the name “Default” is not the true indication of which policy is the default.

Instead it is the IsDefaultPolicy (for Exchange 2010) or IsDefault (for Exchange 2013) property that actually determines which one is the default policy. You can see which policy is the default by using the Get-ActiveSyncMailboxPolicy or Get-MobileDeviceMailboxPolicy cmdlet.

Exchange 2010:

[PS] C:\>Get-ActiveSyncMailboxPolicy | Select Name,IsDefaultPolicy

Name                           IsDefaultPolicy
----                           ---------------
Default                                   True
International Users EAS Policy           False
Connectivity Test Only                   False
High Security Mobile Device Policy       False

Exchange 2013:

[PS] C:\>Get-MobileDeviceMailboxPolicy | Select Name,IsDefault

Name                                     IsDefault
----                                     ---------
Default                                       True
International Users Mobile Device Policy     False
High Security Mobile Device Policy           False

Note: you can use Get-ActiveSyncMailboxPolicy in Exchange 2013 as well, however if you do you will see a (harmless) warning “The Get-ActiveSyncMailboxPolicy cmdlet will be removed in a future version of Exchange.” For more info see Changes to Mobile Device Management Cmdlets in Exchange Server 2013.

You may have a business requirement to choose another policy as the default, such as a desire to set the most common policy as default, or a desire to set the most secure policy as default.

However before you proceed let’s take a look at how Exchange applies the default mobile device mailbox policy.

Here we can see that Paul Cunningham is assigned the policy named “Default”, which happens to also be the default policy at that moment. We can also see that the ActiveSyncMailboxPolicyIsDefaulted property is set to True for Paul’s mailbox.

[PS] C:\>Get-CASMailbox paul.cunningham | Select Name,ActiveSyncMailboxPolicy*

Name                               : Paul Cunningham
ActiveSyncMailboxPolicy            : Default
ActiveSyncMailboxPolicyIsDefaulted : True

This means that if we change the default mobile device mailbox policy to a different policy, that change will also take effect for Paul Cunningham.

In comparison, we can see that Alan Reid is configured for a different mobile device policy. When that change was made the ActiveSyncMailboxPolicyIsDefaulted property of his mailbox was automatically set by Exchange to False.

[PS] C:\>Get-CASMailbox alan.reid | Select Name,ActiveSyncMailboxPolicy*

Name                               : Alan.Reid
ActiveSyncMailboxPolicy            : International Users Mobile Device Policy
ActiveSyncMailboxPolicyIsDefaulted : False

This means that if we change the default mobile device mailbox policy to a different policy, that change will not take effect for Alan Reid, and he will remain on the same policy.

Let’s say that Alan was assigned the “International Users Mobile Device Policy” for an overseas trip. He has returned from overseas and you want to reassign the “Default” policy to his mailbox.

[PS] C:\>Set-CASMailbox alan.reid -ActiveSyncMailboxPolicy "Default"

[PS] C:\>Get-CASMailbox alan.reid | Select Name,ActiveSyncMailboxPolicy*

Name                               : Alan.Reid
ActiveSyncMailboxPolicy            : Default
ActiveSyncMailboxPolicyIsDefaulted : False

Alan is now assigned to the “Default” policy again, but the ActiveSyncMailboxPolicyIsEnabled property is still set to False.

This means that Alan Reid will remain configured with the policy named “Default” even if the default is changed to a different policy.

So before you change the default mobile device mailbox policy you just need to be aware that all mailboxes where the ActiveSyncMailboxPolicyIsDefaulted is set to True will be re-assigned to the new default policy, and those set to False will not.

To see a list of mailboxes that will not be re-assigned when the default mailbox policy changes you can run the following commands to find the name of the default policy, then filter the results of Get-CASMailbox for those that are assigned that policy but have ActiveSyncMailboxPolicyIsDefaulted set to False.

Exchange 2010:

[PS] C:\>$default = (Get-ActiveSyncMailboxPolicy | Where {$_.IsDefaultPolicy}).Name

[PS] C:\>Get-CASMailbox -ResultSize Unlimited | Where {$_.ActiveSyncMailboxPolicy -eq $default -and $_.ActiveSyncMailboxPolicyIsDefaulted -eq $false}

Exchange 2013:

[PS] C:\>$default = (Get-MobileDeviceMailboxPolicy | Where IsDefault).Name

[PS] C:\>Get-CASMailbox -ResultSize Unlimited | Where {$_.ActiveSyncMailboxPolicy -eq $default -and $_.ActiveSyncMailboxPolicyIsDefaulted -eq $false}

In my example I discover the Alan Reid fits that criteria, and I want to reconfigure his mailbox so that it is included when the default mailbox policy is changed.

Strangely there is no parameter for modifying the ActiveSyncMailboxPolicyIsDefaulted property with Set-CASMailbox. However, if we “null” the ActiveSyncMailboxPolicy property it will have the same effect.

[PS] C:\>Set-CASMailbox Alan.Reid -ActiveSyncMailboxPolicy $null

[PS] C:\>Get-CASMailbox Alan.Reid | Select Name,ActiveSyncMailboxPolicy*

Name                               : Alan.Reid
ActiveSyncMailboxPolicy            : Default
ActiveSyncMailboxPolicyIsDefaulted : True

Finally, when you are ready to change the default mobile device mailbox policy to a different policy that suits your business needs, you can use the Set-ActiveSyncMailboxPolicy cmdlet in Exchange 2010, or the Set-MobileDeviceMailboxPolicy cmdlet in Exchange 2013.

Exchange 2010:

[PS] C:\>Set-ActiveSyncMailboxPolicy "High Security Mobile Device Policy" -IsDefaultPolicy $true

Exchange 2013:

[PS] C:\>Set-MobileDeviceMailboxPolicy "High Security Mobile Device Policy" -IsDefault $true

This article Configuring a Default Mobile Device Mailbox Policy for ActiveSync in Exchange Server 2010 and 2013 is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Microsoft MVP Award 2013

$
0
0

mvplogo

I am pleased to announce that I have been renewed as a Microsoft MVP for Exchange Server for another year.

This is my second MVP award and caps off quite an exciting year, with the last 12 months being an incredible experience of learning, including the highlight of travelling to the 2013 MVP Global Summit in February.

I have so many plans for the next year, but for now let me just say thank you to Microsoft, the Exchange Server product group, my fellow MVPs, and of course you the readers of this site for your continued support this past 12 months.


This article Microsoft MVP Award 2013 is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Exchange Server 2013 EASProbeDeviceType Mobile Devices

$
0
0

In an Exchange Server 2013 environment you may notice one or both of the following conditions.

1. A number of “EASProbeDeviceIDxxx” mobile devices in the results of Get-MobileDevice, which is one of the new mobile device management cmdlets in Exchange 2013.

[PS] C:\>Get-MobileDevice | select deviceid,devicetype,deviceuseragent,deviceaccessstate

DeviceId            DeviceType         DeviceUserAgent            DeviceAccessState
--------            ----------         ---------------            -----------------
EASProbeDeviceId121 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId141 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId140 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId120 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId120 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId140 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId121 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId141 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId121 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId120 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId141 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId140 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId120 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId140 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId141 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId121 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId140 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId120 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId141 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId121 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId140 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId120 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId120 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId141 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId121 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
EASProbeDeviceId140 EASProbeDeviceType TestActiveSyncConnectivity       Quarantined
ApplC39GQ8NNDTDL    iPhone             Apple-iPhone4C1/1002.329         Quarantined
androidc259148960   Android            Android/4.0.4-EAS-1.3            Quarantined

2. If you have configured a default access level for ActiveSync in your organization, a number of quarantine notification emails relating to those EASProbeDeviceIDxxx mobile devices.

exchange-2013-easprobedevice-01

These “probe” devices relate to Exchange 2013 Managed Availability health probes.

Managed Availability is still fairly unknown to many of us, though Microsoft has been publishing some good information regularly that helps clear up some of the inner workings.

So what do we do about these EAS probe devices?

Well, from my own testing it appears that the following is true:

  1. You will get at least one EAS probe device per health mailbox that has ever existed in your organization.
  2. You will receive only one quarantine notification per EAS probe device
  3. The quarantine itself does not appear to cause a problem with the Managed Availability health sets that relate to ActiveSync.

So, given the points above, here are some actions that you can consider.

  1. Ignore the quarantine emails.
  2. Action the quarantine emails (ie, approve the EAS probe devices so that they are no longer quarantined)
  3. Add a device access rule for the “EASProbeDeviceType” device type. I don’t really recommend this one unless the volume of quarantine emails is a serious burden for you.

Keep in mind that if you are not quarantining devices using the default access level setting, then it is unlikely you’ll ever receive a quarantine notification email for an EAS probe device.

That just leaves the “clutter” of the devices themselves appearing in the Get-MobileDevice results, and other places such as ActiveSync log exports. At the moment that appears to be a necessary trade-off for all the benefits that Managed Availability delivers for us.


This article Exchange Server 2013 EASProbeDeviceType Mobile Devices is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com


How Do You Feel About Microsoft Ending the TechNet Subscription?

$
0
0

Microsoft’s announcement this week that they will be ending the popular TechNet Subscription offering has received a lot of coverage in the news. Microsoft says the decision is based on their desire to focus on other offerings.

From the TechNet subscriptions FAQ:

Microsoft is retiring the TechNet Subscriptions service to focus on growing its free offerings, including evaluation resources through the TechNet Evaluation Center, expert-led learning through the Microsoft Virtual Academy, and community-moderated technical support through the TechNet Forums to better meet the needs of the growing IT professional community.

So far the only positive or neutral responses I have seen are from people with are either a developer (and get what they need via an MSDN subscription) or who otherwise get access to all the bits that TechNet provides via some other means (eg their employer’s license agreement).

Personally I have mixed feelings about this decision. As an MVP I receive an MSDN subscription that fills my needs. However, I was a long time TechNet subscriber before becoming an MVP and credit a lot of my career development to the testing and evaluation I did with the software. And MVP renewal is not something I take for granted, so in another year I may not have that MSDN subscription to fall back on.

What about you? How does this decision by Microsoft impact you? Do you feel that time-limited evaluation licenses, the Virtual Academy, and the TechNet Forums meet your needs better?


This article How Do You Feel About Microsoft Ending the TechNet Subscription? is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Site News: Closing the Exchange Server Pro Forums

$
0
0

In October 2011 I launched a new discussion forum here at Exchange Server Pro. Since then the forums have seen almost 1,200 threads with just over 4,300 posts in total.

Today I am announcing the closure of the forums. While I am proud of the help that I and others were able to provide to the community in the forums, it has now reached a point where the effort can’t be sustained any further.

Edit: Just to clarify in case I wasn’t 100% clear, I’m only closing the discussion forums. The rest of the site will continue as normal with regular new articles :)

In short, I am having to spend 2-3x as many hours dealing with spam and other technical/administrative issues than I am able to spend on actually answering questions. As far as community contributions go this one has simply become too inefficient, which is why I have made the decision to close the forums and apply that time to writing articles, updating scripts, and other new activities yet to be announced.

A few more points:

  • I have closed registration on the forums, so there can be no more new signups
  • Existing members can still login and post threads and replies
  • In about two weeks I will remove the permissions for posting threads and replies. This should be enough time for existing open threads to reach a conclusion.

If you’re looking for an another forum to post in I recommend the TechNet forums, which is where I will be spending some time answering questions when I can.

Thanks to everyone who supported the launch of the forums and made it a helpful place for the Exchange Server community.


This article Site News: Closing the Exchange Server Pro Forums is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

MSExchangeRepl Error: “The process cannot access the file because it is being used by another process.”

$
0
0

Recently my Get-DAGHealth.ps1 report alerted me that the active copy of a mailbox database in the DAG was on a server that was not the first activation preference. This indicated that an unplanned failover had occurred overnight.

A review of the event logs on the server revealed the following event:

Index : 29023683
EntryType : Error
InstanceId : 489
Message : msexchangerepl (3644) An attempt to open the file “D:\Logs\Mailbox Database 1\E01.log” for read only access failed with system error 32 (0×00000020): “The process cannot access the file because it is being used by another process. “. The open file operation will fail with error -1032 (0xfffffbf8).

This indicated that a file lock had occurred, although the server has interpreted that as memory exhaustion and has failed over the database.

Index : 29023694
EntryType : Error
InstanceId : 3221487736
Message : At ’08/07/2013 10:25:19 AM’ the Exchange store database ‘Mailbox Database 1′ copy on this server appears to have failed due to insufficient memory. For more details about the failure, consult the Event log on the server for other “ExchangeStoreDb” events. A successful failover restored service.

After considering the possible causes of a file lock occurring for a transaction log file I discovered that the antivirus software on the server did not have an exclusion configured for the transaction log path. Transaction log files are one of many recommended exclusions for file-level antivirus scanning.

If you are experiencing unplanned failovers of databases in your DAG I recommend reviewing your antivirus exclusions.


This article MSExchangeRepl Error: “The process cannot access the file because it is being used by another process.” is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Exchange Server 2013 RTM Cumulative Update 2 (CU2) Released

$
0
0

Microsoft has released Cumulative Update 2 (CU2) for Exchange Server 2013 RTM.

In their blog post the Microsoft Exchange team highlights the following improvements delivered in CU2.

  • Per-server database support – increased from 50 to 100
  • OWA redirection – single sign-on behaviour changes
  • High availability – introducing a new service, the DAG Management Service
  • Managed Availability – some changes to the responder throttling framework
  • Cmdlet help – support for updateable help (a PowerShell v3 feature)
  • OWA search improvements – better highlighting of search results
  • Malware Filter Rules – custom malware filter rules for specific users, groups, or domains

Another notable change is the inbound proxy probes now send from inboundproxy@contoso.com instead of @inboundproxy.com. If you have anything monitoring or config related in your environment to deal with those probes you will need to update it for that change.

Note that Cumulative Update 2 includes Active Directory schema changes and RBAC role changes.

Warning: If you are using Exchange 2013 Modern Public Folders you should review this known issue before deploying CU2.

Download Exchange Server 2013 RTM CU2 here.

Deployment Steps: refer to Installing Cumulative Updates for Exchange Server 2013.

Warning: The update pre-requisite check stops the “Microsoft Exchange FrontEnd Transport” and “Microsoft Exchange Transport” services. If you cancel the update after the pre-requisite check you will need to manually start those services.


This article Exchange Server 2013 RTM Cumulative Update 2 (CU2) Released is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

The Good and the Not So Good of Exchange 2013 Cumulative Updates

$
0
0

After Microsoft released Exchange Server 2013 Cumulative Update 2 this week I found myself contemplating how the new servicing model for Exchange is going so far.

The ability to do “build to build” upgrades seems like a good thing to me so far. As I do the planning to update an Exchange 2010 organization from SP2 to SP3 + UR1 the ability for Exchange 2013 servers to be upgraded in one step to the latest build is certainly more appealing. Though we don’t know yet if a service pack for Exchange 2013 will come along and disrupt that.

The process for installing Exchange 2013 cumulative updates is a little more complex than updating Exchange 2010. However this is a good thing in my view, because it is due to new features in Exchange 2013 for managing servers in and out of maintenance.

On the other hand, there is a bit of an information gap appearing in the releases of the cumulative updates.

To put that in context, when assessing an Exchange update I usually ask three questions:

  1. Is it required to keep us within the supported versions
  2. Does it add a feature that is desirable to us
  3. Does it fix a problem we’re experiencing

On the matter of support, the new servicing model makes clear what is required to stay within the supported versions.

In the new Exchange servicing model customers will continue to receive assistance from Microsoft Support for the lifecycle of the Exchange server product – a customer is not required to be at the most current CU to receive assistance. There are two scenarios that we would like to clarify though:

  1. If during the course of a support incident it is determined that the solution is available in a published CU (e.g., CU2), the customer will be required to install the update that contains the fix. We will not be building a new fix to run on top of a CU published earlier (e.g., CU1).
  2. If during the course of a support incident it is determined that you have discovered a new problem for which we confirm a fix is required, that fix will be published in a future CU that you can then install to correct the problem reported.

On the matter of new features, the Exchange team blog posts usually do a good job of explaining new features as they are released in updates, or with longer, dedicated articles shortly after.

Which just leaves bug fixes. With Exchange 2010 some of got used to seeing a list of significant bug fixes being included in the blog post as well as the associated KB article (examples here and here).

The blog posts and KB articles for Exchange 2013 cumulative updates have not included similar lists so far. Which is odd when some important bugs are being fixed, such as KB2835562 (You can’t disable Outlook Web App access for users in on-premises Exchange Server) which is fixed in CU2.

Hopefully Microsoft can find a way to include those lists of bug fixes in the published information for Exchange 2013 cumulative updates. In the meantime, if you’d like to try and keep track of these types of updates you can subscribe to the Exchange 2013 RSS feed (from this list of product feeds). On the day of a cumulative update release there tends to be a bunch of KB article updates/releases for the included bug fixes.

What do you think of the new servicing model for Exchange 2013 so far?


This article The Good and the Not So Good of Exchange 2013 Cumulative Updates is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

How to Send As a Hidden Mailbox

$
0
0

Some end users in your Exchange Server environment may have a requirement to “send as” a mailbox that they also need to remain hidden from the global address list. This scenario presents a few challenges.

Unable to Resolve Hidden Mailbox Names

The first is that the mailbox the person is sending as can’t be resolved from the address list when it is hidden. For example, here Alan Reid is trying to send on behalf of Alannah Shaw to all head office staff. However, despite typing out Alannah’s full email address as the “from” address is still does not resolve.

exchange-send-as-hidden-mailbox-01

One way to work around that issue is to temporarily un-hide the mailbox, allow the person to “send as” at least once, and then in future they are able to select the mailbox name from a cached list in the “From” drop down menu.

exchange-send-as-hidden-mailbox-07

Send on Behalf Permissions Error When Sending as a Hidden Mailbox

Another problem is that even when the “send as” permissions are correctly configured, after the mailbox is hidden from the address list the sender begins receiving undeliverable notifications.

exchange-send-as-hidden-mailbox-02

You can’t send a message on behalf of this user unless you have permission to do so. Please make sure you’re sending on behalf of the correct sender, or request the necessary permission. If the problem continues, please contact your helpdesk.

A Solution for Sending As Hidden Mailboxes

This is one solution for these problems that I have tested and that appears to work. There may be other solutions as well, I’ve seen a few partial answers in forums and on other websites, but these specific steps are the ones that have worked for me. I can’t guarantee that some other factor in your environment won’t prevent this solution from working.

Thanks to Jeff Guillet for his tip that helped me with this.

To begin with the mailbox must be un-hidden and visible in the GAL. For cached-mode clients this also means that the change needs to makes its way through the normal chain of events before it is reflected in the offline address book on the client. If the person can see the mailbox in the Outlook address book then you can proceed to the next step.

exchange-send-as-hidden-mailbox-03

Next, have the end user (Alan Reid in this example) open a new email and type the mailbox name they wish to send as into the “To” field. After a few seconds it should resolve, or you can CTRL+K to speed it along.

Have the end user right-click the resolved name and choose Add to Outlook Contacts. This will add the mailbox to their personal contacts in their mailbox.

exchange-send-as-hidden-mailbox-05

Click Save & Close when the contact card opens up.

Hide the mailbox from the address list again. As before, for cached-mode clients there will be some delay (24-48 hours is not uncommon) before the changes are reflected in the OAB copy on the client.

Now send another email, choosing the hidden mailbox to send as. It should resolve from the contact that was added earlier.

exchange-send-as-hidden-mailbox-06

If there are previously cached entries in the From drop down list ignore those, and make sure you choose Other E-Mail Address and resolve the mailbox from the contact that was added.

exchange-send-as-hidden-mailbox-10

The email should be delivered this time without any error.

exchange-send-as-hidden-mailbox-09

Note, the Other E-Mail Address option must be used each time. Choosing the cached entry from the drop down list will result in an undeliverable message.

exchange-send-as-hidden-mailbox-11


This article How to Send As a Hidden Mailbox is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

How to Remove a DAG Member in Exchange Server 2013

$
0
0

When you are running an Exchange 2013 database availability group in your environment you may have a need to remove one of the servers from the DAG, for example during decommissioning of server hardware.

If you were to try and simply uninstall Exchange 2013 from the server you would encounter an error during the readiness checks.

exchange-2013-remove-dag-member-01

This computer is a member of a database availability group (DAG). It must be removed from the DAG before you can uninstall Exchange.

Following that advice if you were to try and remove the server from the DAG you may encounter this error.

exchange-2013-remove-dag-member-02

Mailbox server ‘E15MB3′ cannot be removed from the database availability group because mailbox database ‘Mailbox Database 1′ has multiple copies. Use Remove-MailboxDatabaseCopy either to remove the copy from this server or to remove the copies from other servers in the database availability group.

By now I’m sure you realise that there is a process that needs to be followed before you can uninstall Exchange 2013 from the DAG member.

  1. Removing database copies
  2. Removing the Exchange server from the DAG

Let’s take a look at those steps in more detail.

Removing Database Copies

The first part of the process is the removal of database copies. There are actually two approaches here.

  1. If you are planning to remove the server from the DAG but keep it as a standalone server hosting databases, then any copies of those databases must be removed from other DAG members first.
  2. If you are planning to completely uninstall Exchange 2013 from the server then any database copies should be removed from the server that is being uninstalled.

Technically you could use the first approach even if you plan to completely uninstall the server, but even after removing the server from the DAG you won’t be able to uninstall Exchange 2013 if it still hosts databases that contain mailboxes.

See Exchange 2013 Database Removal Error: “This mailbox database contains one or more mailboxes” for more information.

So it makes sense to use the second approach for a server that is being completely decommissioned, which is the scenario I will be using for the rest of this tutorial.

In the Exchange Admin Center navigate to Servers -> Databases and select a database that has a copy on the server you are removing from the DAG.

exchange-2013-remove-dag-member-03

If it happens to be the active database copy you would see an error and you must first switchover the database to another DAG member.

The database “Mailbox Database 3″ is currently hosted on server “E15MB3″. Use Move-ActiveMailboxDatabase to move the active copy of the database to a different server.

Click the Remove link for the database copy.

exchange-2013-remove-dag-member-04

If you have multiple database copies to remove you can use this PowerShell command to remove them all. Again, this command won’t work if the database copy is active or if it is the only copy of the database.

[PS] C:\>Get-MailboxDatabaseCopyStatus -Server E15MB3 | Remove-MailboxDatabaseCopy

Removing the Server from the Database Availability Group

After removing all database copies from the DAG member the next step is to remove it from the DAG itself.

In the Exchange Admin Center navigate to Servers -> Database Availability Groups. Select the DAG and click the Manage DAG Membership button.

exchange-2013-remove-dag-member-05

Highlight the server name and click the Remove button.

exchange-2013-remove-dag-member-06

Click Save to complete the removal process.

You can also remove the DAG member using PowerShell.

[PS] C:\>Remove-DatabaseAvailabilityGroupServer -Identity E15DAG -MailboxServer E15MB3

Removing Exchange Server 2013

Now that the Mailbox server has no databases and has been removed from the DAG, and assuming the server performs no other roles in your organization, you can uninstall Exchange 2013.

exchange-2013-remove-dag-member-07


This article How to Remove a DAG Member in Exchange Server 2013 is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com


How to Reseed a Failed Database Copy in Exchange Server 2013

$
0
0

When you’re running an Exchange 2013 database availability group you will eventually need to deal with a failed database copy that needs to be reseeded.

Database copies may be in a failed state due to a variety of reasons, such as a hardware failure on the underlying storage system. After resolving the root cause of a failed database copy you then need to reseed the copy, which is a process that creates a new copy of the database by replicating the data from another DAG member that hosts a healthy copy.

To demonstrate how to reseed a failed database copy I’ve first caused a failure of one of my databases, which can be seen here in the output of the Get-MailboxDatabaseCopyStatus cmdlet.

[PS] C:\>Get-MailboxDatabaseCopyStatus *

Name                      Status
----                      ------
Mailbox Database 1\E15MB1 Healthy
Mailbox Database 2\E15MB1 FailedAndSuspended
Mailbox Database 1\E15MB2 Mounted
Mailbox Database 2\E15MB2 Mounted

If you’re looking for guidance to resolve failed content indexes in your database availability group, see PowerShell Tip: Fix All Failed Exchange Database Content Indexes.

The reseed operation can be started using either the Exchange Admin Center or the Exchange Management Shell (PowerShell).

Preparing to Reseed a Database Copy

There are a number of considerations when reseeding a database copy.

First, the time required for the reseed to complete will depend on the size of the database and the network performance between the source and destination servers.

By default the reseed will use the DAG member hosting the active database copy as the source.

If the database is 500Gb in size, that is 500Gb of database that needs to be copied across the network, plus the transaction log files and the content index for that database. This can add up to a lot of data that needs to travel across your network.

If the DAG members exist only within a single site connected by high speed LAN then this will not likely be a concern.

exchange-2013-reseed-from-active

However if the DAG members exist in multiple sites across a WAN then it may be more of an issue.

Fortunately, you can specify a source server for the database reseed, which allows you to select a server that has better connectivity to reseed from, such as another DAG member within the same site as the server with the failed database copy.

exchange-2013-reseed-from-passive

The options for selecting a reseed source will be demonstrated below.

Reseeding a Database Copy Using the Exchange Admin Center

Open the Exchange Admin Center and navigate to Servers -> Databases. Select the database that has the failed copy.

exchange-2013-reseed-failed-database-copy-01

On the database copy that is shown as failed click the Update link.

exchange-2013-reseed-failed-database-copy-02

You can click Browse and specify a source server if necessary, otherwise click Save to reseed from the server that hosts the active database copy.

exchange-2013-reseed-failed-database-copy-03

Wait for the reseed operation to complete.

exchange-2013-reseed-failed-database-copy-04

When the reseed operation has finished the database copy should now be healthy.

Reseeding a Database Copy using the Exchange Management Shell

We can also perform reseeds using the Update-MailboxDatabaseCopy cmdlet.

The database to reseed is entered in the format “Database Name\Server Name”, for example:

[PS] C:\>Update-MailboxDatabaseCopy "Mailbox Database 2\E15MB1"

To specify a source server for the reseed use the -SourceServer parameter as well.

[PS] C:\>Update-MailboxDatabaseCopy "Mailbox Database 2\E15MB1" -SourceServer EXMB3

If you receive an error message that log files already exist in the transaction log path for the database you can use the -DeleteExistingFiles parameter to tell the Exchange server to remove those files before beginning the reseed.

[PS] C:\>Update-MailboxDatabaseCopy "Mailbox Database 2\E15MB1" -DeleteExistingFiles

Finally, for long reseeds where you do not want to leave your Exchange Management Shell open, or when scripting a reseed and you don’t want the script to have to wait for the reseed to complete, you can use the -BeginSeed parameter.

[PS] C:\>Update-MailboxDatabaseCopy "Mailbox Database 2\E15MB1" -BeginSeed

Of course those parameters can be used in conjunction with each other, for example:

[PS] C:\>Update-MailboxDatabaseCopy "Mailbox Database 2\E15MB1" -DeleteExistingFiles -BeginSeed -SourceServer E15MB3

Monitoring Database Copy Health

If you do not already have a monitoring solution in place for your Exchange 2013 DAG I encourage you to try my Get-DAGHealth.ps1 or Test-ExchangeServerHealth.ps1 scripts.


This article How to Reseed a Failed Database Copy in Exchange Server 2013 is © 2013 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

How to Export Mailboxes with Exchange Server 2010 SP1

$
0
0

Exchange Server 2010 Service Pack 1 introduced a new method for exporting mailboxes called Mailbox Export Requests.  This new method replaces the previous Export-Mailbox command.

Before we look at how to create a new mailbox export request in Exchange 2010 SP1 there are a few things that you should understand.

Firstly, no accounts are granted the rights to export mailboxes by default.  You need to explicitly grant these rights, even to accounts that are organization administrators.

Secondly, the mailbox export request is processed by the Client Access server role.  Because multiple Client Access servers can exist in a site the request could be processed by any one of them.  To ensure that the path to the export PST file is valid for any Client Access server it has to be a UNC path to network share, not a local path.

Granting User Rights for Mailbox Exports in Exchange 2010 SP1

The first step is to grant the right to export mailboxes to an account in your organization.  In the Exchange Management Shell run the following command.

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

If you’re logged with that user already simply restart your Exchange Management Shell session to be granted access to the new cmdlets.

Creating a Network Share for Mailbox Exports in Exchange 2010 SP1

Next we need to create the network share that will be used as the file path for the exported PST files.  All that is required here is a network share that the Exchange Trusted Subsystem group has read/write permission to.

Exporting a Mailbox with an Exchange Server SP1 Mailbox Export Request

With everything configured properly we can now use New-MailboxExportRequest to start the mailbox export.  The only two required parameters for the command are the file path to the export PST file, and the name of the mailbox to export.

[PS] C:\>New-MailboxExportRequest -Mailbox alan.reid -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxExport                                  exchangeserverpro.net/Company/Users/Head Of... Queued

To view the status of the request use the Get-MailboxExportRequest cmdlet.

[PS] C:\>Get-MailboxExportRequest

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxExport                                  exchangeserverpro.net/Company/Users/Head Of... InProgress

You can also see more detail about the mailbox export request with Get-MailboxExportRequest.

[PS] C:\>Get-MailboxExportRequest -Name MailboxExport | fl

RunspaceId     : c48a9069-e572-4c65-80ea-773e61e5337e
FilePath       : \\esp-ho-ex2010a\pst\alan.reid.pst
SourceDatabase : MB-HO-01
Mailbox        : exchangeserverpro.net/Company/Users/Head Office/Alan.Reid
Name           : MailboxExport
RequestGuid    : 9de3a722-0c82-4e34-98bf-0ff624c47c16
RequestQueue   : MB-HO-01
Flags          : IntraOrg, Push
BatchName      :
Status         : InProgress
Protect        : False
Suspend        : False
Direction      : Push
RequestStyle   : IntraOrg
OrganizationId :
Identity       : exchangeserverpro.net/Company/Users/Head Office/Alan.Reid\MailboxExport
IsValid        : True

An easy way to see the progress of all mailbox export requests is to pipe Get-MailboxExportRequest into the Get-MailboxExportRequestStatistics cmdlet.

[PS] C:\>Get-MailboxExportRequest | Get-MailboxExportRequestStatistics

Name                                   Status                    SourceAlias                           PercentComplete
----                                   ------                    -----------                           ---------------
MailboxExport                          InProgress                Alan.Reid                             20

Exporting an Archive Mailbox with Exchange Server SP1 Mailbox Export Request

You can also export a user’s Personal Archive using mailbox export requests simply by adding the -IsArchive parameter to the command.

[PS] C:\>New-MailboxExportRequest -Mailbox alan.reid -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst -IsArchive

Completing the Mailbox Export Request

When a mailbox export request is completed it remains on the server until it is removed by an administrator using Remove-MailboxExportRequest.

To see all of the completed mailbox export requests run this command.

[PS] C:\>Get-MailboxExportRequest | where {$_.status -eq "Completed"}

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxExport                                  exchangeserverpro.net/Company/Users/Head Of... Completed

And to clear all completed mailbox export requests from Exchange run the following command.

[PS] C:\>Get-MailboxExportRequest | where {$_.status -eq "Completed"} | Remove-MailboxExportRequest

This article How to Export Mailboxes with Exchange Server 2010 SP1 is © 2011 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

How to Import PST Files into Mailboxes with Exchange 2010 SP1

$
0
0

In a recent article we looked at how to export mailboxes to PST file with Mailbox Export Requests for Exchange Server 2010 SP1.  In this article we’ll look at the process for importing PST files into mailboxes.

In Exchange Server 2010 SP1 importing PST files into mailboxes is performed using Mailbox Import Requests. These are similar to export requests in that they are processed by a Client Access server.

Because multiple Client Access servers can exist in a site there is no way to determine which one will process the request, therefore the PST file to import must be accessible via the UNC path of shared folder.

The account that is performing the import also needs to be explicitly granted the rights to do so, as no accounts have this right by default (even Organization administrators).

Granting User Rights for Mailbox Imports in Exchange 2010 SP1

The first step is to grant the right to import mailboxes to an account in your organization.  In the Exchange Management Shell run the following command.

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

If you’re logged with that user already simply restart your Exchange Management Shell session to be granted access to the new cmdlets.

Creating a Network Share for Mailbox Imports in Exchange 2010 SP1

Next we need to create the network share that will be used as the file path for the PST files to be imported.  All that is required here is a network share that the Exchange Trusted Subsystem group has read/write permission to.

Importing a PST File with an Exchange Server SP1 Mailbox Import Request

To import a PST file to a mailbox we use the New-MailboxImportRequest cmdlet.  In this example the PST file alan.reid.pst is being imported into John Smith’s mailbox.

[PS] C:\>New-MailboxImportRequest -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst -Mailbox john.smith

In some cases you might prefer to import the PST file into sub-folder of the mailbox. You can do this by adding the -TargetRootFolder parameter to the command.

[PS] C:\>New-MailboxImportRequest -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst -Mailbox john.smith -TargetRootFolder "Mailbox - Alan Reid"

The import request will create the target folder and begin importing the PST file contents into it.

You can view the status of the mailbox import request using the Get-MailboxImportRequest cmdlet.

[PS] C:\>Get-MailboxImportRequest

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxImport                                  exchangeserverpro.net/Company/Users/Head Of... InProgress

By piping Get-MailboxImportRequest into Get-MailboxImportRequestStatistics you can also monitor the progress of the import.

[PS] C:\>Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

Name                                   Status                    TargetAlias                           PercentComplete
----                                   ------                    -----------                           ---------------
MailboxImport                          InProgress                john.smith                            10

Importing PST Files into Personal Archives in Exchange Server 2010 SP1

Another way to use mailbox import requests is to import PST files directly into personal archive mailboxes. This is very useful for organizations who want to get rid of all PST files on the network.  All you need to do is add the -IsArchive parameter to the command when importing the PST file to a mailbox user who has been enabled for archiving.

[PS] C:\>New-MailboxImportRequest -FilePath \\esp-ho-ex2010a\pst\archive.pst -Mailbox alan.reid -IsArchive

Completing the Mailbox Import Request

When a mailbox import request is completed it remains on the server until it is removed by an administrator using Remove-MailboxImportRequest.

To see all of the completed mailbox import requests run this command.

[PS] C:\>Get-MailboxImportRequest | where {$_.status -eq "Completed"}

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxImport                                  exchangeserverpro.net/Company/Users/Head Of... Completed

And to clear all completed mailbox import requests from Exchange run the following command.

[PS] C:\>Get-MailboxImportRequest | where {$_.status -eq "Completed"} | Remove-MailboxImportRequest

This article How to Import PST Files into Mailboxes with Exchange 2010 SP1 is © 2011 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Exchange Server 2010 Mailbox Import Request Logging

$
0
0

Exchange Server 2010 SP1 has a useful feature for importing PST files into mailboxes. However if you’ve used this feature a few times you may start to encounter problems with the imports failing, such as when the PST file has corrupt items in it.

Fortunately you can use the built-in logging of mailbox import operations to troubleshoot failed import requests. Each import request creates it’s own report for the import operation that can be accessed using the Get-MailboxImportRequestStatistics command.

Here is an example. First a mailbox import request is started using New-MailboxImportRequest.

[PS] C:\>New-MailboxImportRequest -FilePath \\esp-ho-ex2010a\pst\alan.reid.pst -Mailbox angela.hole

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxImport                                  exchangeserverpro.net/Company/Users/Head Of... Queued

Next, we can see the mailbox import request is in progress.

[PS] C:\>Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

Name                                   Status                    TargetAlias                           PercentComplete
----                                   ------                    -----------                           ---------------
MailboxImport                          InProgress                Angela.Hole                           10

By appending the -IncludeReport parameter to the command we get to see the log for the import operation.

[PS] C:\>Get-MailboxImportRequest | Get-MailboxImportRequestStatistics -IncludeReport

Name                                   Status                    TargetAlias                           PercentComplete
----                                   ------                    -----------                           ---------------
MailboxImport                          InProgress                Angela.Hole                           10

If you run that command the output on screen may be too much to read, so instead you can output it to a text file instead if you wish.

[PS] C:\>Get-MailboxImportRequest | Get-MailboxImportRequestStatistics -IncludeReport | fl >report.txt

By the way here is another tip. If more than one mailbox import request is present then the above command will output all of them, not just the one you are interested in. To get the statistics for just the import request you want you need to know the “identity” of the mailbox import request. You can see that by running this command.

[PS] C:\>Get-MailboxImportRequest | ft name,identity -auto

Name          Identity
----          --------
MailboxImport exchangeserverpro.net/Company/Users/Head Office/Angela.Hole\MailboxImport

That identity string is a bit long to type out. You can just copy and paste it if you want, or use this trick instead.

[PS] C:\>$id = get-user angela.hole
[PS] C:\>Get-MailboxImportRequest -Identity $id.dn

Name                                           Mailbox                                        Status
----                                           -------                                        ------
MailboxImport                                  exchangeserverpro.net/Company/Users/Head Of... Completed

Anyway, back to the log that we want to look at. So once you’ve output the report for an import request to the screen or a text file you will see information such as this:

8/5/2011 11:31:18 PM [esp-ho-ex2010a] 'exchangeserverpro.net/Users/Administrator' creat
ed request.
8/5/2011 11:31:32 PM [esp-ho-ex2010a] The Microsoft Exchange Mailbox Replication servic
e 'esp-ho-ex2010a.exchangeserverpro.net' (14.1.323.0 caps:07) is examining the request.
8/5/2011 11:31:32 PM [esp-ho-ex2010a] Connected to target mailbox 'Primary (edbd7ee2-ac
b6-413a-9736-2851e4f5d122)', database 'MB-HO-03', Mailbox server 'outlook.exchangeserve
rpro.net' Version 14.1 (Build 323.0).
8/5/2011 11:31:32 PM [esp-ho-ex2010a] Request processing started.
8/5/2011 11:31:32 PM [esp-ho-ex2010a] Stage: CreatingFolderHierarchy. Percent complete:
 5.
8/5/2011 11:31:38 PM [esp-ho-ex2010a] Merge initialized for mailbox 'Primary (edbd7ee2-
acb6-413a-9736-2851e4f5d122)': 25 folders total. Estimated data size: 70167 items, 708.
3 MB (742,683,898 bytes).
8/5/2011 11:31:38 PM [esp-ho-ex2010a] Stage: CopyingMessages. Percent complete: 10.
8/5/2011 11:31:38 PM [esp-ho-ex2010a] Copy progress: 0/70167 messages, 0 B (0 bytes)/70
8.3 MB (742,683,898 bytes).
8/5/2011 11:31:39 PM [esp-ho-ex2010a] Merging folder '/Top of Personal Folders/Contacts
 [Contacts]' into '/Top of Information Store/Contacts [Contacts]'.
8/5/2011 11:31:40 PM [esp-ho-ex2010a] Copying 0 items, 0 B (0 bytes). Skipping 0 items,
 0 B (0 bytes).
8/5/2011 11:31:40 PM [esp-ho-ex2010a] Stage: CopyingMessages. Percent complete: 10.
8/5/2011 11:31:40 PM [esp-ho-ex2010a] Copy progress: 0/70167 messages, 0 B (0 bytes)/70
8.3 MB (742,683,898 bytes).

If you’ve had an import request fail then this report should tell you why. Most of the time the failures will probably be due to corrupt mail items in the PST file you’re importing. If that is the case you can simply add the -BadItemLimit parameter to the New-MailboxImportRequest command. If you need to set the bad item limit higher than 50 you’ll also need to add the -AcceptLargeDataLoss parameter as well.


This article Exchange Server 2010 Mailbox Import Request Logging is © 2011 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Getting Started with Email Archiving in Exchange Server 2010

$
0
0

In my first job in IT I was given an email address and a mailbox with a 20mb quota. Thats 20 megabytes. Unthinkable in today’s business world, particularly when you consider Exchange Server 2010′s default storage quotas of +2Gb and the Microsoft “large mailbox vision”.

email-logo

The PST Nightmare

Naturally with such a small mailbox quota the entire organization made heavy use of PST files for storing email. When you had read an email and wanted to keep it, you moved it to the PST file immediately. Every week or so you would go to your Sent Items and move all your recent sent email into the PST as well. Deleted items were emptied automatically when Outlook closed.

Everyone had their own “system” for maintaining their email, but the results were basically the same – you stayed under your mailbox quota by creating a mess of PST files, and permanently deleting anything you didn’t want to keep.

Of course these days PST files are a royal pain for everyone involved. The end users become frustrated when PST files are corrupted seemingly at random, or lost when they switch computers.

The IT administrators become frustrated with assisting end users with those problems, and the escalating cost of storing PST files on file servers.

And the business itself is often frustrated by information that is leaked or lost in PST files, unable to be discovered, searched, or secured.

Email Archiving Solutions

And so an entire industry segment evolved to deliver email archiving solutions to businesses, such as Symantec Enterprise Vault and GFI MailArchiver.

The benefits of these types of email archiving systems are obvious; the valuable information stored in email can be safely and centrally archived in a format that is secure, searchable, and also carries other benefits such as single-instancing, compression, and the ability to locate archives on different tiers of storage and with different backup/retention timelines applied.

Exchange Native Archiving

Unsurprisingly, Microsoft then delivered native email archiving capabilities in Exchange Server 2010. At RTM the feature was somewhat disappointing with a few desirable options missing, such as the ability to locate the archive mailbox for a user on a separate database to their primary mailbox.

However in Exchange Server 2010 SP1 that issue, and many others, were resolved and native archiving became an attractive option for organizations that were beginning to evaluate email archiving solutions.

Personal Archive Mailboxes

Exchange 2010 native archiving involves the provisioning of a personal archive, or archive mailbox, for end users. This is in effect just another mailbox, separate to their primary mailbox, stored in an Exchange mailbox database.

Archiving is enabled on a per-mailbox basis, and each user that is enabled for archiving requires an Enterprise Client Access License (CAL). This isn’t enforced at the software level, it is your responsibility to ensure that you have the correct number of Enterprise CALs for the number of users you intend to enable for archiving.

Further reading:

Archive Databases

Thanks to the improvements in Exchange Server 2010 SP1 the archive mailbox for a user can be located on a different mailbox database to their primary mailbox. The mailbox database can be on the same mailbox server, or a different mailbox server, than the database that hosts the primary mailbox, as long as both servers are located within the same Active Directory site.

This allows you to locate mailbox databases that are dedicated to archive mailboxes on different servers, or on lower tiers of storage (although Exchange 2010 is already designed to run on low cost disk anyway), and apply different backup schedules and retention periods.

And because the archive mailbox database is otherwise the same as any other Exchange 2010 mailbox database, it can have the same high availability by being replicated within a Database Availability Group.

Further reading:

Importing PST Files to Archive Mailboxes

For organizations that already have PST files on the network, one of the goals in the implementation of an email archiving solution may be to import those PST files into the archive so that they can be removed from the network for good. For Exchange Server 2010 native archiving there are two solutions available for this.

The first solution is to perform PST imports into the archive mailboxes. This has been available since Exchange Server 2010 SP1, however it requires that the IT administrators be able to locate the PST files and either manually run PowerShell commands or write a script to perform the import operations.

The second solution is to use the PST Capture Tool that Microsoft released in early 2012. This tool assists with the discovery and import of PST files on the network into either the primary or archive mailbox for Exchange 2010 and Office 365. Although a little more complicated to set up it does solve some of the issues associated with the previous manual approach.

Further reading:

Archiving Email Automatically via Retention Policies

When a mailbox user has been enabled for archiving they are assigned a retention policy.

Exchange 2010 mailbox with retention policy

A retention policy is made up of a group of retention tags – at least one default tag, and then any number of additional policy tags or personal tags.

Although the tags that you are licensed to use in retention policies differ between the Standard and Enterprise CAL, since archiving is an Enterprise CAL feature anyway I will assume that you are entitled to the full range of retention tags.

There is already one default retention policy installed with Exchange Server 2010 so you should take a look at it first before you begin enabling mailboxes for archiving. The outcome of the default policy is that it will archive any items more than 2 years old, unless the mailbox user assigns one of the available personal tags instead.

Exchange 2010 default retention policy

Alternatively you can create your own retention tags and policies to suit your organization’s archiving goals, such as this 30 day archive policy I’ve configured in my test environment.

Exchange 2010 new retention policy

You can add existing mailboxes to the new retention policy when you are creating it, or add them later.

Exchange 2010 add mailbox to new retention policy

Managed Folder Assistant

The Managed Folder Assistant is the agent that processes mailboxes and applies retention tags and performs actions on the mailbox items.

In Exchange 2010 RTM the Managed Folder Assistant operated on a schedule, however in Exchange 2010 SP1 this was changed to a “workcycles” approach instead, where the assistant runs and stops as necessary depending on the load the mailbox server is under at the time. This improves the reliability of the Managed Folder Assistant by increasing the likelihood that it will process all mailboxes in larger environments where a scheduled approach may not be suitable.

You can also manually run the Managed Folder Assistant from PowerShell.

Start-ManagedFolderAssistant -Identity alan.reid

The outcome is quite obvious. Here is the mailbox for Alan Reid prior to the Managed Folder Assistant running.

Exchange 2010 mailbox before archiving

And here is the same mailbox after the Managed Folder Assistant has run.

Exchange 2010 mailbox after archiving

Summary

As you can see from this brief overview, Exchange Server 2010 native archiving can be used to effectively manage the size of mailboxes by automatically moving items into personal archives.

However proper planning should always take place before implementing any email archiving solution. In the case of Exchange 2010 native archiving, considerations include:

  • Is the organization licensed correctly for personal archives?
  • Do the client computers have a compatible version of Outlook installed?
  • Where will the archive databases be located, and will they be replicated within a Database Availability Group?
  • How will the archive database be backed up?
  • Which retention tags and policies will be assigned to mailboxes?

 


This article Getting Started with Email Archiving in Exchange Server 2010 is © 2012 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com

Viewing all 506 articles
Browse latest View live