A troubleshooting guide to the Exchange Calendar Update Tool (Msextmz.exe)
On This PageSUMMARYThe Exchange Calendar Update Tool (Msextmz.exe) is the tool that Exchange administrators can use to apply time zone changes to a calendar for one or more users. The Exchange Calendar Update Tool uses the Time Zone Data Update Tool for Microsoft Office Outlook
(the Outlook Time Zone Data Update tool or Tzmove.exe) to update Exchange calendar information. This document describes how the Exchange Calendar Update Tool works. This article also contains some of the common error results that you may experience when you run it.
For more information about how to install and use the Exchange Calendar Update Tool, click the following article number to view the article in the Microsoft Knowledge Base:
930879 (http://support.microsoft.com/kb/930879/)
How to address daylight saving time by using the Exchange Calendar Update Tool
INTRODUCTIONThis article describes how the Exchange Calendar Update Tool works. Additionally, this article describes certain conditions in which you may experience an error when you use the Exchange Calendar Update Tool. Note This article identifies errors that you are more likely to experience by using the following heading: Common error Other errors are identified as appropriate depending on how likely you are to experience them.Important This article is not a guide about how to run or how to configure the Exchange Calendar Update Tool. The information in this article is based on version 2 of the Exchange Calendar Update Tool. MORE INFORMATIONOverviewAlthough the Exchange Calendar Update Tool is a single binary file, it contains two distinct modes of operation. The first mode, Time Zone Export Mode, is used to gather information about which particular time zone is generally used for scheduled meetings. The second mode, Calendar Update Mode, is used to run the Outlook Time Zone Data Update tool against a set of mailboxes. The following is the intended sequence of operation for the Exchange Calendar Update Tool:
Stage 1: Exchange Calendar Update Tool configurationWhen the Exchange Calendar Update Tool is started, it takes one parameter. This parameter is the name of the .ini file from which the configuration data is derived. By default, this parameter is.\Msextmz.ini This path indicates the Msextmz.ini file that is in the same folder as Msextmz.exe. All the configuration information for the Exchange Calendar Update Tool is contained in the Configuration section of the Msextmz.ini file. The Msextmz.ini file is referred to as the .ini file throughout the rest of this article.Note The Exchange Calendar Update Tool receives two parameters from the C runtime library. The first parameter is the program name. Initialization stepsThe following steps occur to initialize the Exchange Calendar Update Tool:
Stage 2: Main processingAfter the configuration operation is complete, the Exchange Calendar Update Tool performs a minor initialization operation. Then, the Exchange Calendar Update Tool starts the main processing operation. First, the Exchange Calendar Update Tool initializes MAPI. Failure to initialize MAPI results in a fatal error. Generally, this kind of error indicates that an earlier MAPI crash on the computer has left the MAPI subsystem in an unstable state. In this situation, you must restart the computer. Typically, restarting the computer resolves the initialization problem. Before the Exchange Calendar Update Tool can start full operation, the Exchange Calendar Update Tool must retrieve the system time zone information. To do this, the Exchange Calendar Update Tool uses the GetTimezoneInformation Win32 API. The Exchange Calendar Update Tool uses this time zone information to restore the system time zone if the system time zone has changed during the calendar update operation.Important If the Exchange Calendar Update Tool program closes during a calendar update session, the computer may be left in a different time zone than the time zone that it used when the calendar update session started. After the Exchange Calendar Update Tool saves the original time zone information, the Exchange Calendar Update Tool starts the main processing operation. The Exchange Calendar Update Tool uses two main sources of information for this processing:
Mailbox table processingThe Exchange Calendar Update Tool uses the HrProcessMailboxTable function to perform mailbox table processing. To process the mailbox table, the Exchange Calendar Update Tool first performs a logon operation. If the value of the Profile entry is set in the .ini file, the Exchange Calendar Update Tool uses the profile that is specified in the Profile entry to log on to the mailbox. If the Profile value is not set, the Exchange Calendar Update Tool prompts you to select a stored profile. The profile that you select must point to a mailbox that is hosted on the server that contains the mailboxes that you want to process. Additionally, this profile must have the Administer Information Store permission set on all mailbox stores on the particular server. The Exchange Calendar Update Tool uses the specified profile to log on to MAPI.If the profile that is specified does not exist, you receive the following error result: Possible error Error 0x8004010F After the Exchange Calendar Update Tool logs on to MAPI, the Exchange Calendar Update Tool obtains the mailbox table. This table represents the list of mailboxes that exist on a particular information store. Because of a limitation in the Exchange Calendar Update Tool user interface, only 65,535 mailboxes are returned in a single export operation. MAPI_E_NOT_FOUND Note If a server has more than 65,535 mailboxes, it is best to use an Active Directory Service Interfaces (ADSI) query to determine the number of mailboxes that are hosted on the server. This query would then be used to generate the input file. The Exchange Calendar Update Tool could then process that input file to generate the time zone information. For each row in the mailbox table, if the value of the ExportTimezones entry is set to 1 in the .ini file, the Exchange Calendar Update Tool tries to extract time zone information for the user. If the ExportTimezones value is not configured, the output file will only contain user distinguished names. In this situation, no time zone information is generated. To extract time zone information, the Exchange Calendar Update Tool must perform an administrative logon to the mailbox. This action requires the Administer Information Store right. If the account under which the Exchange Calendar Update Tool runs does not have "Full Mailbox access" permissions to the mailbox, or if the account under which the Exchange Calendar Update Tool runs does not have Administer Information Store permissions on the mailbox store, you may experience the following error result: Common error Error: 0x8004011D Additionally, you may receive the following error message:MAPI_E_FAIL_ONE_PROVIDER HrProcessMailboxTable Unable to log onto user mailbox: Error – 0x8004011D. Extracting time zone informationThe HrFindMailboxTimezone top-level function performs the operation to extract time zone information. Time zone information is divided into the following major sources:
Common error 0x80004005 MAPI_E_FAILED This is not a fatal error. This error does not indicate data corruption. Some mailboxes may not contain any usable time zone information. Note If the Exchange Calendar Update Tool is revised, the MAPI_E_FAILED error result in this scenario is scheduled to be replaced by a MAPI_E_NOT_FOUND error. The location from which time zone information is readTime zone information is read from the following locations:
UserDN<TAB>CDOTimezone<TAB>OWATimezone<TAB>Outlook2007/TZMOVETimezone<TAB>CalendarDataTimezone<TAB><CRLF>
In this format:
Processing an input fileIf the Exchange Calendar Update Tool processes an input file, this could mean that the Exchange Calendar Update Tool must perform an update for only a subset of users. Additionally, it could mean that the Exchange Calendar Update Tool must export time zone information for only a subset of users. The HrProcessInputFile function performs the top level processing of an input file. This function reads the input file one line at a time. A single line in the input file cannot exceed 1,025 characters.If the input file is not correctly delimited, and if a single line exceeds 1,025 characters, the following error result is returned: Common error 0x80004005 – MAPI_E_FAILED If the input file contains a distinguished name that is the maximum length of a distinguished name, there may be no space that is available for the server entry or the time zone entry in the input string. This error condition is unlikely to occur. However, if this scenario occurs, you receive the following error result:Uncommon error 0x80004005 – MAPI_E_FAILED Note Currently, a fix is not available to resolve this problem. After the Exchange Calendar Update Tool reads a line, the Exchange Calendar Update Tool splits the TAB delimited entries in the line into the component pieces. The format appears as follows: UserDN<TAB>Server<TAB>Timezone<CRLF> In this format:
Processing a single mailboxTo process a single mailbox, the Exchange Calendar Update Tool converts the data to Unicode. The Exchange Calendar Update Tool determines the relative distinguished name of the user from the LegacyDN entry. To do this, the Exchange Calendar Update Tool examines the last equal sign (=) in the legacyDN path. Then, the Exchange Calendar Update Tool creates a profile and later logs on to this profile by using the following command:MSEXTMZ-RDN-TickCount Note The Exchange Calendar Update Tool uses the HrCreateOutlookProfile function to create the user profile. If the input file has incorrect TAB delimiters, the Exchange Calendar Update Tool may generate an incorrect UserDN value or server name. In this scenario, you receive the following error result: Common error 0x8004011C – MAPI_E_UNCONFIGURED After the profile is created, the Exchange Calendar Update Tool determines whether to update the mailbox or to extract time zone information. If ExportTimezones=1 is set in the .ini file, the Exchange Calendar Update Tool calls the HrFindDefaultMailboxTimezone function to extract time zone information. If the account under which the Exchange Calendar Update Tool runs does not have "Full Mailbox access" permissions to the mailbox, you receive the following error result:Common error 0x8004011D – MAPI_E_FAIL_ONE_PROVIDER Additionally, you receive the following error message:HrFindDefaultMailboxTimezone If no error occurs, the Exchange Calendar Update Tool performs the mailbox time zone extraction process that is mentioned in the "Extracting time zone information" section.Unable Open Mailbox - 0x8004011D If the purpose of running the Exchange Calendar Update Tool is to update calendar information, the Exchange Calendar Update Tool calls the HrTestMailboxAccess function. This function verifies that the Exchange Calendar Update Tool can log on to the particular mailbox. Also, this function verifies that the Exchange Calendar Update Tool can open folders in the mailbox. To do this, the function tries to open the Outbox folder. If the account under which the Exchange Calendar Update Tool runs does not have "Full Mailbox access" permissions to the mailbox, you experience the following symptoms:
The Exchange Calendar Update Tool then reads the user's time zone information from the registry. To do this, the Exchange Calendar Update Tool calls the HrReadTimezoneFromRegistry function. The HrReadTimezoneFromRegistry function tries to read the time zone information that is specified as a subkey of the following registry location: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\ In this subkey, the DLT, STD, and TZI values must exist for the particular time zone. If these values do not exist, the time zone read operation is unsuccessful. If the specified time zone is not present as a subkey of the Time Zones registry subkey, or if the Exchange Calendar Update Tool does not have sufficient permissions to access this registry location, the following error result is returned:Common error 0x80070002 – FILE_NOT_FOUND After the time zone is read from the registry, the Exchange Calendar Update Tool must set the system time zone to that value. To do this, the Exchange Calendar Update Tool calls the HrSetSystemTimezone function. The HrSetSystemTimezone function does not modify the system time zone if the system is already in the correct time zone for the particular user. If the HrSetSystemTimezone function must modify the time zone, the token rights must be set to grant the Exchange Calendar Update Tool the time zone right. By default, this right is assigned. By default, however, this right is not present on any token. Important Any failures in the HrSetSystemTimezone function are likely to occur because the account under which the Exchange Calendar Update Tool runs does not have permission to set the system time zone. Starting the Outlook Time Zone Data Update tool and then determining the success or failure of the operationAfter the system time zone is set correctly for the user either by already being correct or by the Exchange Calendar Update Tool setting it, the Exchange Calendar Update Tool prepares to start the Outlook Time Zone Data Update tool. This preparation includes gathering data to help determine whether the Outlook Time Zone Data Update tool succeeded or failed.To start, the Exchange Calendar Update Tool records the number of the most recent event in the event log. The Outlook Time Zone Data Update tool writes a success event to the event log if the Outlook Time Zone Data Update tool finishes successfully. This event is Event ID 32 from the source TZMOVE. The Outlook Time Zone Data Update tool may not write an update log. Therefore, the Exchange Calendar Update Tool must examine the event log to determine whether the Outlook Time Zone Data Update tool succeeded. When the Exchange Calendar Update Tool examines the event log, the Exchange Calendar Update Tool starts from the most recent event log entry that was recorded before the Outlook Time Zone Data Update tool started. The Exchange Calendar Update Tool calls the HrSpawnOutlookTool function to start the Outlook Time Zone Data Update tool. The HrSpawnOutlookTool function uses the command line that is specified in the CommandLine entry in the .ini file. The Exchange Calendar Update Tool then waits until the Outlook Time Zone Data Update tool closes. Note The Outlook Time Zone Data Update tool may close either because the Outlook Time Zone Data Update tool finishes successfully or because the Outlook Time Zone Data Update tool crashes. After the Outlook Time Zone Data Update tool closes, the Exchange Calendar Update Tool determines whether the Outlook Time Zone Data Update tool was successful. If the path in the CommandLine entry in the .ini file is not set to the correct path of Tzmove.exe, you receive the following error result: Common error 0x80070002 – FILE_NOT_FOUND If the HrSpawnOutlookTool function fails, the Exchange Calendar Update Tool does not try to read the event log. Additionally, the Exchange Calendar Update Tool does not try to create a copy of the Outlook Time Zone Data Update tool log file. However, if the Outlook Time Zone Data Update tool starts successfully, the Exchange Calendar Update Tool tries to determine whether the Outlook Time Zone Data Update tool succeeded. To do this, the Exchange Calendar Update Tool examines the event log. The Exchange Calendar Update Tool tries to retrieve the event ID of the most recent event log record. The Exchange Calendar Update Tool examines the event log from the original "most recent" event log record to the current "most recent" event log record.If the original "most recent" event log record and the current "most recent" event log record are the same record, the Exchange Calendar Update Tool determines that no events have been written to the event log. In this scenario, you receive the following error result: Common error 0x80004005 – MAPI_E_FAILED Additionally, you receive the following error message:HrProcessMailbox: No Event log records written – treated as failure. You may experience this problem if one or more of the following conditions are true:
If the Outlook Time Zone Data Update tool runs successfully but does not write the success event to the event log, the following error result is generated when the HrScanEventLogForSuccessAt function examines the event log: Common error 0x80004005 – MAPI_E_FAILED Additionally, you receive the following error message:HrScanEventLogForSuccess:Success The Application log may contain more information about why the Outlook Time Zone Data Update tool failed. Alternatively, if the LoggingLevel entry is set to 2 or to a value that is larger, the log file may contain more information. The Outlook Time Zone Data Update tool event logs are also echoed to the Exchange Calendar Update Tool event log when it is possible. Event not found in Application log, treating as failure. If the Outlook Time Zone Data Update tool completed successfully, the Exchange Calendar Update Tool tries to archive the Outlook Time Zone Data Update tool log file. This file is named Outlook Time Zone Update.log. The Outlook Time Zone Update.log file is written to the %TEMP% folder for each user. The Outlook Time Zone Data Update tool does not always write a log file. Therefore, it is not considered a failure if no log file is written. If the LogDirectory entry is configured incorrectly, the following error result is returned: Common error 0x80070003 You may experience this problem if the .ini file has an entry that resembles the following: The System Cannot find the path specified. In this entry, the name of the Temp folder is misspelled as "tamp."The Outlook Time Zone Data Update tool then copies the update log file to a file that uses the same name as the MAPI profile. This file name has the following format: MSExTmz-RDN-TickCount.log Finally, the Exchange Calendar Update Tool pauses for the time period that is specified by the PostMailboxDelay entry in the .ini file. In any failure case, if the value of the ErrorFile entry is set in the .ini file, the user's legacyDN is sent to the error file. This file contains the list of users who were not processed successfully. Interpreting Exchange Calendar Update Tool error codesThe Exchange Calendar Update Tool uses HRESULTS to generate error codes. Therefore, the error codes are interpreted as HRESULTS codes. This means that you can deconstruct any error code to give you more information.HRESULTS codes are easily recognizable because HRESULTS errors start with 0x80. The next number in the HRESULT is the FACILITY code. The FACILITY code tells you the approximate source of the error.
The part of the error that appears after the FACILITY code represents the actual error code. Consider the following example error code:
The following example represents an application error: In this example, the error code is 0x10F. You can examine the Mapicode.h file from MSDN or Live Search to locate the error message that corresponds to error code 0x10F. Error code 0x10F corresponds to the following error message:MAPI_E_NOT_FOUND This error message generally indicates that the program could not locate a MAPI property. However, you may also receive this error message if the program cannot locate a particular folder. REFERENCES
For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:
930879 (http://support.microsoft.com/kb/930879/)
How to address daylight saving time by using the Exchange Calendar Update Tool
238119 (http://support.microsoft.com/kb/238119/) List of Extended MAPI numeric result codes
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.APPLIES TO
| Article Translations
|

Back to the top
