次の方法で共有


Exchange 2010 Calendar Repair Assistant is enabled by default but does not run by default

EHLO everyone,

                I recently posted this article in the Mr. Proactive and Miss T. Proactive blog site. In their own words, “Mr. Proactive and Miss T. Proactive are Premier Field Engineers. Mr. Proactive is constantly looking for proactive items that he can share with Microsoft customers. Miss T. Proactive is always looking for Tips and Tricks to share.” You can visit them here. I wanted to share this in The Exchange Café as well, as this particular topic has been coming up more often with my customers. Enjoy!

Jay W. Cotton

 

While onsite one day with a customer we received a report that a calendar item was not on one of the attendee’s Outlook calendar. After some investigation we found that the user had deleted the item on accident. Immediately I began to wonder why the Calendar Repair Assistant had not found and repaired the inconsistency. 

                Not familiar with the Calendar Repair Assistant you say? A good place to start is here. In a nutshell, the Calendar Repair Assistant (CRA for short) runs within the Microsoft Exchange Mailbox Assistant service and is designed to repair calendar inconsistencies between organizers and attendees. As of Exchange 2010 SP1 the CRA is throttle based and performs the following four step process:

1. Detects inconsistencies The CRA uses the organizer's copy of the calendar item as a master copy for all meeting items. The assistant compares the attendee's calendar item with the organizer's calendar item for inconsistencies. The only exception to this rule is when the assistant compares the attendee's and organizer's response status. The assistant assumes that the attendee's response status is the correct one, and, if necessary, updates the organizer's tracking information.

2. Determines if inconsistencies were intentional If an inconsistency is detected, the CRA determines whether the attendee intentionally introduced the inconsistency. For example, an attendee can introduce an inconsistency by deleting the meeting request and not notifying the organizer. If the assistant determines that the attendee didn't introduce the inconsistency, it corrects the problem. If the assistant can't determine if the inconsistency was intentional, it performs no further action.

3. Corrects inconsistencies The CRA corrects inconsistencies on the Mailbox server on which it runs. However, if the organizer's mailbox is on a different server than the attendee's mailbox, the assistant reads from other Exchange 2010 Mailbox servers to compare the calendar items. The assistant doesn't overwrite the recipient's calendar information. Instead, it merges the information so data isn't lost. In addition, the repair update messages are moved to the recipient's Deleted Items folder.

4. Sends a calendar repair update message if a correction was made Calendar repair update messages are sent to users whose calendar items were updated by the CRA. Instead of sending the message to the user's Inbox, the assistant sends the message to the user's Deleted Items folder. By doing so, a record of the repair is kept in the mailbox without causing user confusion. If the user is experiencing calendar inconsistencies, you can advise the user to look in the Deleted Items folder for troubleshooting purposes. The assistant only sends repair update messages if the issue is fixed.

                Now let’s return to the customer in question. In theory the CRA should have compared the attendees calendar, found that there was an inconsistency, determined that it was not intentional, and then placed the item on the attendee’s calendar and then sent an email into the attendee’s deleted items folder with a notification that the change has been made.

                Our first troubleshooting step was to look in the deleted items folder for the notification that an item was repaired. Nothing was there. Following that we ran the following Exchange Management Shell command to verify that the CRA had not been disabled for that user Get-mailbox username | fl CalendarRepairDisabled the output from that command is below.

So we could see here that the CRA was enabled for the user in question.

Next we decided to look at the CRA logs to see if it logged the event at all. By default you can find the CRA log files <Exchange installation path>\v14\Logging\Calendar Repair Assistant. In our case there were no log files at all in this location!

At this point I asked the customer if they had made any changes to the CRA. They said they had not, so we ran the following command via the Exchange Management Shell Get-mailboxserver severname | FL *calendar* . The output is below.

You can see above the default settings for the CRA. The CalendarRepairMissingItemFixDisabled was set to False so they had not disabled the CRA, and the default logging location had not been changed so it appeared that they had not made any changes. I then noticed the top three entries. I expected the CalendarRepairSchedule to be {} since the CRA now is throttle based and does not run on a schedule, however the first two entries CalendarRepairWorkCycle, and CalendarRepairWorkingCycleCheckpoint should not be empty if the CRA is running as expected. 

The CalendarRepairWorkCycle parameter specifies the time span in which all mailboxes on the specified server will be scanned by the CRA. For example, if you specify seven days for this parameter, the CRA will process all mailboxes on this server every seven days.

Calendars that have inconsistencies will be flagged and repaired according to the interval specified by the CalendarRepairWorkCycleCheckpoint parameter. For example, if you specify one day for this parameter, the CRA will query every day for new mailboxes that require processing.

As an example if the WorkCycle is set to seven days, and the WorkCycleCheckpoint is set to one day, the CRA will process all mailboxes on the server every seven days, and every day it will repair any calendar items it has flagged in its current queue as needing repair.

In this customer’s example both values were blank meaning that the CRA was not running at all. After further investigation, we found that even though the CRA is enabled by default for all mailboxes on a particular mailbox server, it is NOT running by default. So in this case we ran the following Exchange Management Shell command on EACH mailbox server Set-MailboxServer –Identity servername –CalendarRepairWorkCycle 7.00:00:00 –CalendarRepairWorkCycleCheckpoint 1.00:00:00.

When the CRA is working properly and an item is repaired, you will see entries like this in the CRA logs.

In the above example you can see the steps that the CRA takes in validating the calendar item, comparing the items on the attendee’s calendar to the organizer’s calendar, and then deciding whether it should be fixed or not, and then the confirmation that it has sent the fix to the attendee’s calendar.

From the attendee’s point of view, they will receive a message similar to the below example in their Deleted Items folder. It also places the item back on the attendee’s calendar as “tentative”.

If you would like more information regarding Exchange 2010, Calendaring best practices, and other topics related to Exchange 2010 PFE offers many workshops, chalk talks, and other services that can address your needs. Talk to your technical account manager for more details. In the meantime, go back to your Exchange organization, double check your Exchange Calendar Repair Assistant, and make sure you are getting the functionality you expect from it.