How to Configure a Disaster Information Message in Exchange 2010 UM

Tuesday, May 15, 2012
Exchange 2010 Unified Messaging can be used to create a disaster information message for employees.  Typically you will have a dedicated phone number for this purpose and will advertise this number to employees on a regular basis.  When a disaster occurs a DR coordinator calls into Exchange UM and records a message for employees, giving them information and instructions.  You may want to visit Talking About Disaster for information and ideas about what to include in your disaster information message.

This article explains how to create an auto attendant for this purpose and how to configure Exchange to allow greetings to be recorded using the telephone user interface (TUI).  I assume that you already are using Exchange Unified Messaging and that it's configured properly. 

Let's get started.

  • Create a new enabled* Auto Attendant called “Disaster Announcement” with a Pilot Identifier for the disaster information extension.

  • Open the properties of the new auto attendant.  On the General tab, disable speech-enabled and directory enabled. 

  • Set the Business Hours Greeting and Business Hours Main Menu Prompt to use the C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\prompts\en\Silence-250ms.wav file. This will set the prompts to silence.   Alternatively, you may want to use a WAV file saying, “There are no disasters right now. Call back later” for the Main Menu prompt. 

  • Set the Times tab to Always Run

  • Clear all the options in the Features tab. 

  • Configure a new Key Mapping called “Announcement” that runs the “Disaster Announcement” auto attendant (itself) when the user presses no key (time-out). This will cause the auto attendant to loop.  Alternatively, you can configure it to play the Silence-250ms.wav file, which will loop indefinitely until the caller gets bored of hearing nothing and hangs up. 

  • Clear all the options on the Dialing Restrictions tab and click OK to save the changes.

Then use the TUI to configure the auto attendant greeting when a disaster occurs.   Read Enable Custom Prompt Recording Using the Telephone User Interface for instructions on how to do this.
* If you create the auto attendant as disabled you will run into an interesting problem where you cannot save the AA configuration changes because the AA references a disabled AA (itself).
Read more ...

How to Seed an Exchange 2010 Database from a Particular Source

Thursday, May 10, 2012
Normally when you seed (copy) an Exchange database in a DAG, the source is the active database.  This may not be efficient if the source database is across the WAN.  This article explains how to seed from a different source, preferably a passive copy in the local LAN.

Seeding a database copy can be performed from the Exchange Management Console (EMC) or the Exchange Management Shell (EMS).  The database will always seed from the active database when you perform the operation from the EMC.  If you want to select a different source you need to use EMS.

Open and elevated EMS prompt and run the following three cmdlets:

Add-MailboxDatabaseCopy -Identity DB01 -MailboxServer EXMB03 -SeedingPostponed

Suspend-MailboxDatabaseCopy -Identity DB01\EXMB03 -SuspendComment "Seed DB01 from EXMB02" -Confirm:$False

Update-MailboxDatabaseCopy -Identity DB01\EXMB03 -SourceServer EXMB02 -DeleteExistingFiles

The first command adds a new mailbox database copy of database DB01 on mailbox server EXMB03, but does not start the seeding operation.  Once this operation completes you will see the DB01 database copy on EXMB03 will be in a "Failed and Suspended" state.

The second command suspends the mailbox database copy and creates a suspend comment.  This step is not necessary, but it's helpful to create a comment so other administrators don't try to "fix" the failed and suspended database copy.

The third command seeds the mailbox database copy on EXMB03 from the source server EXMB02.  It also deletes any existing DB01 database or log files on the target prior to seeding.  Once this operation begins the database copy state will change to "Seeding" until the seeding operation is complete, at which point it will change to "Healthy".
Read more ...

How to Fix Legacy GAL Segmentation Issues in Exchange 2010

Thursday, May 10, 2012
I'm working for a customer who is migrating from Exchange 2003 to Exchange 2010.  The customer used "old school" GAL segmentation to create different address lists and Default Global Address Lists (GALs) for some users.  Prior to Exchange 2010 SP2, this was done by configuring ACL permissions on Address Lists using ADSI Edit.  Not only was this fairly complex, it was also not officially supported by Microsoft.  There was still a genuine business need for GAL segmentation and a number of companies did it anyway.

Exchange 2010 SP2 introduces GAL segmentation using Address Book Policies (Thanks, Greg Taylor!)  This is the only GAL segmentation that is supported by Microsoft.  The trouble is that only Exchange 2010 mailboxes can benefit from this form of segmentation.  If you're doing a migration from a previous version to 2010, the legacy mailbox users won't see it.  In the case of my customer, that means ripping out all the legacy ACLs first and configuring Address Book Policies later.

I ran into some strange issues when I reset the ACL permissions, so I want to explain what I did and how I did it to overcome these issues.

The organization had a very elaborate set of permissions on their address lists.  They had 8 separate All Users address lists and 5 separate Default Global Address Lists.  With many child domains, it made it difficult to determine which permissions were applied and which were inherited at all the different levels.  I decided to use ADSI Edit to delete all the address lists and GALs and recreate them on the Exchange 2003 side.  Here's how I did this:

  • Open ADSI Edit and navigate to CN=All Address Lists,CN=Address Lists Container,CN=[OrgName],CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=[domain],DC=[com]
  • Delete all the address lists in this container except All Rooms (All Contacts, All Groups, All Users, etc.).  All Rooms is an Exchange 2010 address list and will not need to be recreated.
  •  Navigate to CN=All Global Address Lists,CN=Address Lists Container,CN=[OrgName],CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=[domain],DC=[com]
  • Delete all the Global Address Lists including the Default Global Address List
Now recreate the address lists and Default Global Address List in Exchange 2003.  I did it this way to ensure that current 2003 mailboxes can use the new lists.

Once the address lists have been created and replicated throughout the domain, you can upgrade them to Exchange 2010 versions using OPath and you should be good to go.

However, if your organization used ACLs for Exchange 2003 GAL segmentation there's a very good chance that OWA was segmented, as well.  OWA GAL segmentation is done an entirely different way, and if you don't undo these changes Exchange 2010 users will not see the Default Global Address List or the All * lists in Outlook.

OWA GAL segmentation is done by configuring the msExchangeQueryBaseDN attribute on the user object in AD.  Normally this attribute is empty (Null).  For GAL segmentation in OWA, the msExchangeQueryBaseDN attribute is set to the distinguishedName of the OU where you want the GAL scoped to.

Simply clear the msExchangeQueryBaseDN value for the user, wait for it to replicate and the address lists will show up for online (non-cached mode) users.  The user doesn't even need to close Outlook.

Cached mode users will need to download the new OAB to see the address lists.  This will happen automatically within 24 hours, or the user can download the OAB manually in Outlook.  You'll need to either let the OAB update automatically at 4am or update it manually with the Update-GlobalAddressList cmdlet first.

 Here's an EMS one-liner that will clear the msExchangeQueryBaseDN for all users in the organization:
Get-Mailbox | Foreach{ $dn = "LDAP://" + $_.distinguishedname;$obj = [ADSI]$dn;$obj.msExchQueryBaseDN.Clear();$obj.SetInfo()}
Read more ...

Update for the UC Roundtable at TechEd Orlando

Wednesday, May 2, 2012
I'm very happy to announce that I'm joining forces again this year with the Microsoft Certified Master: Exchange Program and F5 for the 5th Annual UC Roundtable!

 This is a great opportunity to meet and greet the Exchange MCMs, MVPs and the Microsoft Exchange Product Group at Micosoft TechEd in Orlando.  Appetizers and drinks will be served, compliments of our friends at F5!
Bring your Exchange and Lync questions for a fun evening of discussions around both products.  MCM Program Manager David Bjurman-Birr will be there to answer questions about the MCM:Exchange program, as will others, like me, who have gone through the program.

Formal registration details have gone out to those who RSVP'd to me.  If you sent me an RSVP and did not get the registration email, let me know at

The date and time if the event will be
Wednesday, June 13, 2012.  6:00-8:00PM

Read more ...