Microsoft KB Archive/934001

From BetaArchive Wiki

Article ID: 934001

Article Last Modified on 10/25/2007



APPLIES TO

  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Exchange 2000 Enterprise Server



SUMMARY

The 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 How to address daylight saving time by using the Exchange Calendar Update Tool


INTRODUCTION

This 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 INFORMATION

Overview

Although 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:

  1. An administrator uses the Exchange Calendar Update Tool in Time Zone Export Mode to create a list of mailboxes together with the associated time zones.
  2. The administrator uses the Exchange Calendar Update Tool in Calendar Update Mode to apply time zone changes to a set of mailboxes by using the time zone information.

Stage 1: Exchange Calendar Update Tool configuration

When 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 steps

The following steps occur to initialize the Exchange Calendar Update Tool:

  1. The .ini file is used for all later configuration calls. If this file does not exist, you may receive the following error message in response to any later call to configure the Exchange Calendar Update Tool:

    Common error

    Error 0x80070002
    The System Cannot find the file.

    You receive this error result if the .ini file does not exist.
  2. The Exchange Calendar Update Tool reads the logging level from the following entry in the .ini file:

    LoggingLevel=logging_level

    If the LoggingLevel entry is not present in the .ini file, the Exchange Calendar Update Tool uses the default value of 0 (zero). For an event to generate a log entry, the logging level for the particular event must be less than the logging level that appears in the LoggingLevel entry.

  3. The Exchange Calendar Update Tool reads the Msextmz.log file name from the following entry in the .ini file:

    Logfile=file_name

    If no log file name is set in the Logfile entry, the Exchange Calendar Update Tool does not write to a log file. If a log file is set in the Logfile entry, the Exchange Calendar Update Tool opens the log file to have write permissions.

    Note If it is necessary, the Exchange Calendar Update Tool removes the existing log file. Failure to open the log file is a fatal error. This error returns a Win32 error result. Additionally, you may receive the following error message:

    Common error

    Error 0x80070003
    The System Cannot find the path specified.

    This error occurs if the Logfile value is set to a folder that does not exist. For example, you may receive this error if you have a Logfile entry that resembles the following:

    Logfile=c:\tamp\msextmz.log

    In this example, the name of the Temp folder is misspelled as "tamp."

  4. The Exchange Calendar Update Tool reads the command line for the Outlook Time Zone Data Update tool from the following entry in the .ini file:

    CommandLine=Path_of_the_Tzmove.exe_Program_File

    The CommandLine entry must specify the path of the installed Tzmove.exe program file and not the path of the Windows installation file for the Outlook Time Zone Data Update tool.

    Note The Windows installation file for the Outlook Time Zone Data Update tool is also named Tzmove.exe.

    The CommandLine entry in the .ini file must be set. This is true whether you use the Exchange Calendar Update Tool to export time zones or you use the Exchange Calendar Update Tool to update time zone information.

    Note Although the Exchange Calendar Update Tool does not use or validate the CommandLine entry when you use the Exchange Calendar Update Tool to export time zone information, if the CommandLine entry is not set, the Exchange Calendar Update Tool fails. Additionally, you receive the following error result:

    0x80004005 – MAPI_E_FAILED

  5. The Exchange Calendar Update Tool reads the value of the server's distinguished name (also known as DN) from the following entry in the .ini file:

    ServerDN=Server_distinguished_name_value

    The ServerDN entry must specify the LegacyDN attribute value of the server for time zone extraction. However, for the calendar update operation, this entry must specify the relative distinguished name (also known as RDN) of the server. For example, the value of the ServerDN entry may appear similar to the following:

    cn=ServerName

    If the value in the ServerDN entry is not set, the Exchange Calendar Update Tool fails. Additionally, you receive the following error result:

    0x80004005 – MAPI_E_FAILED

  6. The Exchange Calendar Update Tool reads the output file name from the following entry in the .ini file:

    Outputfile=Output_file_name

    The value of the Outputfile entry is used in Time Zone Export Mode to write user LegacyDN information and time zone data. The Exchange Calendar Update Tool does not use the Outputfile entry in Calendar Update Mode. However, if the value of the Outputfile entry is set, the Exchange Calendar Update Tool opens the file to have write permissions.

    Note If it is necessary, the Exchange Calendar Update Tool overwrites the existing output file. Failure to open the output file is a fatal error. In this scenario, the return code is a Win32 error.

    If the Outputfile entry specifies an invalid location, the Exchange Calendar Update Tool fails. Additionally, you receive the following error result:

    Common error

    Error 0x80070003
    The System Cannot find the path specified.

    For example, you may receive this error if you have an Outputfile entry that resembles the following:

    Outputfile=c:\tamp\mailboxes.txt

    In this example, the name of the Temp folder is misspelled as "tamp."

  7. The Exchange Calendar Update Tool reads the name of the input file from the following entry in the .ini file:

    Inputfile=Input_file_name

    The Exchange Calendar Update Tool can use the input file in Calendar Update Mode and in Time Zone Export Mode. The Exchange Calendar Update Tool uses the input file to specify the user LegacyDN property of a mailbox to process. If the value of the Inputfile entry is set, the Exchange Calendar Update Tool opens the input file to have read permissions. In this scenario, the input file must exist. Failure to open the input file is a fatal error. The return code is a Win32 error.

  8. The Exchange Calendar Update Tool reads the error file name from the following entry in the .ini file:

    Errorfile=Error_file_name

    The Exchange Calendar Update Tool can use the error file in both Calendar Update Mode and Time Zone Export Mode. The error file contains the LegacyDN property of any user who could not be processed.

    Note Failure to find any time zone information does not indicate that a particular user will appear in the error file.

    If the Errorfile entry is set, the Exchange Calendar Update Tool opens the file to have write permissions. If it is necessary, the Exchange Calendar Update Tool overwrites an existing file. Failure to open the error file is a fatal error. The return code is a Win32 error.

    If the Errorfile entry is set to an invalid location, the Exchange Calendar Update Tool fails. Additionally, you receive the following error result:

    Common error

    Error 0x80070003
    The System Cannot find the path specified.

    For example, you may receive this error if you have an error file entry that resembles the following:

    Errorfile=c:\tamp\errors.log

    In this example, the name of the Temp folder is misspelled as "tamp."

  9. The Exchange Calendar Update Tool reads the MAPI profile name from the following entry in the .ini file:

    Profile=MAPI_profile_name

    The Profile entry is not a required value. However, the Exchange Calendar Update Tool uses this value in Time Zone Export Mode to determine which MAPI profile should be used to access the mailbox table. The profile that is specified in the Profile entry must point to a mailbox on the server that will be processed. Additionally, the account must have Administer Information Store rights on each mailbox store on the server. The value of the Profile entry is not validated at this point. Therefore, an incorrect profile does not cause a fatal error.

  10. The Exchange Calendar Update Tool reads the default time zone from the following entry in the .ini file:

    Timezone=Default_time_zone

    The Timezone entry is used in Calendar Update Mode. The value of the Timezone entry specifies a master time zone that the Exchange Calendar Update Tool uses for mailboxes that are in the input file and that do not contain time zone information. This value must specify the registry subkey from the following registry location:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Timezones

    For example, the following entry sets the value of the Timezone entry to the (GMT-3:00) Brasillia time zone:

    Timezone=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\E. South America Standard Time

    The Exchange Calendar Update Tool immediately validates the Timezone value by calling the HrReadTimezoneFromRegistry function. If the time zone does not exist, this function call fails. Additionally, this function call fails if all the parameters cannot be read from the registry.

  11. The Exchange Calendar Update Tool reads the flag from the following entry in the .ini file:

    ExportTimezones=flag

    The Exchange Calendar Update Tool uses this flag to determine whether to export time zone data. If the value of the ExportTimezones entry is 1 (TRUE), the Exchange Calendar Update Tool tries to read time zone data from each mailbox that is processed.

  12. The Exchange Calendar Update Tool reads the flag from the following entry in the .ini file:

    ReadCalendarTimezones=flag

    The Exchange Calendar Update Tool uses this flag to determine whether to process calendar items for time zone information. If the ReadCalendarTimezones value is set to 1 (TRUE), the Exchange Calendar Update Tool searches the calendar for recurring items for which the user is the organizer. Additionally, the Exchange Calendar Update Tool tries to determine the time zone that is associated with the calendar items.

  13. The Exchange Calendar Update Tool reads the post-processing delay value from the following entry in the .ini file:

    PostMailboxDelay=Post_processing_delay_in_seconds

    The value of the PostMailboxDelay entry is used in Calendar Update Mode to specify how long an instance must pause after the instance processes a mailbox. This functionality is designed to let the mailbox server recover from processing. The PostMailboxDelay value is specified in seconds. By default, the PostMailboxDelay value is set to 0 (zero). A value of 0 (zero) indicates that there is no post-processing delay.

  14. The Exchange Calendar Update Tool reads the per-mailbox rebasing time limit from the following entry in the .ini file:

    PerMailboxTimeLimit=Rebasing_time_limit

    The value of the PerMailboxTimeLimit entry sets the maximum time that the Exchange Calendar Update Tool waits for the Outlook Time Zone Data Update tool to finish rebasing a mailbox. The default value of the PerMailboxTimeLimit entry is INFINITE. This value indicates that the Exchange Calendar Update Tool waits forever for the Outlook Time Zone Data Update tool to complete rebasing a mailbox. A value other than INFINITE is specified in minutes.

  15. Finally, the Exchange Calendar Update Tool reads the log file folder name from the following entry in the .ini file:

    LogDirectory=Log_file_folder_name

    The log file folder represents the folder to which the Outlook Time Zone Data Update tool calendar update log files are written.

    Note The Outlook Time Zone Data Update tool only writes log file information to this folder if the Outlook Time Zone Data Update tool is configured to log calendar update information.

    This entry does not indicate that the Exchange Calendar Update Tool log file is stored in the designated folder. If the LogDirectory entry contains an invalid value, you receive the following error result:

    Common error

    Error 0x80070003
    The System Cannot find the path specified.

    This error occurs during the post-rebase processing operation.

Stage 2: Main processing

After 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:

  • The mailbox table
  • The input file

The mailbox table can only be used to export time zone information. However, the input file can be used for either the time zone export operation or for the calendar update operation. If the value for the Inputfile entry is not set, the Exchange Calendar Update Tool does not process the mailbox table.

Mailbox table processing

The 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
MAPI_E_NOT_FOUND

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.

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
MAPI_E_FAIL_ONE_PROVIDER

Additionally, you may receive the following error message:

HrProcessMailboxTable

Unable to log onto user mailbox: Error – 0x8004011D.

Extracting time zone information

The HrFindMailboxTimezone top-level function performs the operation to extract time zone information. Time zone information is divided into the following major sources:

  • Collaboration Data Objects (CDO)
  • Microsoft Office Outlook Web Access
  • Outlook 2007 or the Outlook Time Zone Data Update tool
  • Calendar

Each kind of time zone information has a corresponding function to retrieve the time zone information. This includes the following functions:

  • HrFindCDOTimezone
  • HrFindOWATimezone

Not all mailboxes have all kinds of time zone information. If no time zone information for a particular type is found, the following error result is returned:

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 read

Time zone information is read from the following locations:

  • CDO information is read from the user's Inbox. CDO time zone information is only available if a CDO application has logged on to the mailbox. This action sets the CDO session options for the time zone. This scenario covers Research in Motion (RIM) customers and Good customers together with other CDO users.
  • Outlook Web Access information is read from the root of the mailbox. Outlook Web Access time zone information is read from the root folder. In this scenario, if a user has Outlook Web Access settings but does not have a time zone entry set, you receive the following error result when you try to read the time zone information:

    Common error

    0x8004011B – MAPI_E_CORRUPT_DATA

  • Outlook 2007 and the Outlook Time Zone Data Update tool time zone information is read from the associated message in the calendar folder.
  • Calendar data time zone information is read from a calendar item. The Exchange Calendar Update Tool scans the calendar to obtain time zone data. To obtain this data, the Exchange Calendar Update Tool examines each item, looking for a recurring item for which the user is an organizer. Then, the Exchange Calendar Update Tool extracts the time zone description string from that item. Because recurring meetings in Outlook Web Access are not flagged to indicate that the meeting was organized by the user, the Exchange Calendar Update Tool may not detect time zone information in the recurring meetings.

After all the time zone information is read, the Exchange Calendar Update Tool sends the information to the output file. This information has the following format:

UserDN<TAB>CDOTimezone<TAB>OWATimezone<TAB>Outlook2007/TZMOVETimezone<TAB>CalendarDataTimezone<TAB><CRLF>


In this format:

  • <TAB> represents a TAB character delimiter.
  • <CRLF> represents a Carriage Return Line Feed character combination.

After the time zone information is sent to the output file, the Exchange Calendar Update Tool logs off from the user's mailbox.

Processing an input file

If 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:

  • UserDN is the legacyDN of the mailbox.
  • Server is the server name of the server. Server is not the legacyDN of the server.
  • Timezone is a registry subkey name from the following registry location:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Timezones

    For example, a value of E. South America Standard Time sets the mailbox time zone to (GMT-3:00) Brasillia.

After the Exchange Calendar Update Tool splits the TAB delimited entries into their component pieces, the Exchange Calendar Update Tool calls the HrProcessMailbox function.

Processing a single mailbox

To 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
Unable Open Mailbox - 0x8004011D

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.

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:

  • You receive the following error result:

    Common error

    0x8004011D – MAPI_E_FAIL_ONE_PROVIDER

    Additionally, you receive the following error message:

    HrTestMailboxAccess
    Unable Open Mailbox - 0x8004011D.

  • You receive the following error result:

    Common error

    0x80040111 – MAPI_E_LOGON_FAILED

    Additionally, you receive the following error message:

    HrTestMailboxAccess
    Unable Open Mailbox - 0x80040111

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.

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 operation

After 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:

  • The event log does not contain sufficient free space to write an event. In this scenario, the Outlook Time Zone Data Update tool may have rebased the mailbox successfully. However, the Exchange Calendar Update Tool cannot determine whether the Outlook Time Zone Data Update tool was successful.
  • The CommandLine entry in the .ini file points to the Tzmove.exe installation file and not to the Tzmove.exe program file.


Note The Tzmove.exe installation file is approximately eight megabytes (MB).

  • The Outlook Time Zone Data Update tool crashed on startup. Therefore, the Outlook Time Zone Data Update tool did not write an event to the event log. This problem is likely to occur if the Tzmover.dll file is not in the same folder as Tzmove.exe.

If no error occurs, the Exchange Calendar Update Tool calls the HrScanEventLogForSuccessAt function to examine the event log for the Outlook Time Zone Data Update tool success record. The event ID 32 success event from the source TZMOVE indicates that the mailbox was rebased successfully.

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
Event not found in Application log, treating as failure.

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.

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
The System Cannot find the path specified.

You may experience this problem if the .ini file has an entry that resembles the following:

LogDirectory=c:\tamp\

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 codes

The 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.

  • A FACILITY code of 7 indicates a system error.
  • A FACILITY code of 4 indicates an application error.

Therefore, an HRESULT of 0x80070002 indicates that a system error has occurred. An HRESULT of 0x8004010F indicates that an application error has occurred.

The part of the error that appears after the FACILITY code represents the actual error code. Consider the following example error code:

0x80070002
  • In this error, 7 represents the FACILITY code.
  • The remaining value, 0002, represents the error code.

One method to look up a system error code is to use the NET HELPMSG errorcode command. For example, if you type NET HELPMSG 2 at a command prompt, and then press ENTER, you receive the following message:

The system cannot find the file specified.

This message generally indicates that a file could not be located.

The following example represents an application error:

0x8004010F

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 How to address daylight saving time by using the Exchange Calendar Update Tool


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.

Keywords: kbhowto kbexpertiseadvanced kberrmsg kbinfo KB934001