Updating the Offline Address Book in Exchange and Outlook

Button - Download Address BookWhen you have Cached Exchange Mode enabled, Outlook by will by default cache the main Global Address List as well. This is called the Offline Address Book and is being generated on the Exchange server.

Due to various syncing schedules, it can take up to 24 hours before you could actually see a change in Outlook after a modification has been made in the Exchange organization or in Active Directory.

In this guide, the relevant timings are explained and instructions are given in how you can directly force an update and resync, which can be very handy when troubleshooting or when you work in an Exchange environment which sees a lot of user mailbox mutations.

The automatic sync and update schedules

When? buttonAfter a change has been made to any of the Address Book attributes, that is also included in the Offline Address Book (OAB), the following occurs:

  1. Exchange generates the OAB.
    Default generation schedule: 8 hours.
  2. Outlook downloads the OAB.
    Default update schedule when leaving Outlook running: 24 hours.

This means that in the worst possible scenario, an update to the Address Book won’t become available to the user until 24 hours after the change.

Note: It is not 32 hours since at least 2 OAB generation cycles exist between 2 Outlook automatic sync cycles.

Updating Outlook manually

Outlook buttonEven though Outlook is the last in the chain, it is often the first level where the troubleshooting takes place as usually this is where the request is coming from. And since this website’s main focus is on Outlook, it makes sense to start with Outlook as well ;-).

So once you know that the OAB must have been updated (at maximum 8 hours after the change), you can manually update the OAB instead of waiting 24 hours for Outlook to do it automatically.

The command for the manual update procedure can be found here:

  • Send/Receive-> Send/Receive Groups-> Download Address Book…

Outlook will automatically download updates only unless the size of the changes is larger than 12.5% (one-eighth) of the total OAB size. In that case the whole OAB is being downloaded again. In a later section, it is explained how to modify this.

You can manually update your OAB rather than wait 24 hours.
You can manually update your OAB rather than wait 24 hours.

Note: Restarting Outlook will also trigger an OAB update once updating the mailbox cache has completed.

Modify the OAB update frequency in Outlook

Send/Receive Groups buttonYou can’t alter the automatic OAB update frequency of Outlook. Even when you modify the Send/Receive Settings, enable the “Download offline address book” option and configure the Send/Receive Group to sync every hour, the OAB will not be updated more frequently.

The only thing that you can control with this option is selecting which OAB to download; In the rare case that multiple has been assigned to you. In that case, Outlook automatically picks the one that contains the most addresses.

For completeness, you can find that option in the following location;

  1. Open the Send/Receive Groups dialog
    • Keyboard shortcut: CTRL+ALT+S
    • Send/Receive-> Send/Receive Groups-> Define Send/Receive Groups
    • File-> Options-> Advanced-> Send/Receive…
  2. Select the “All Accounts” group and click the Edit… button.
  3. Select your Exchange account and enable the option: Include the selected account in this group.
  4. Disable all the options in the “Account Options” section except for: Download offline address book.
  5. Clicking on the Address Book Settings… allows you to select which OAB to sync.

Send/Receive Group Settings - Enable the opton to include the Exchange account and select to download the offline address book
Include your account in the new Send/Receive group and set it to only download the OAB.

Modify the OAB download behavior in Outlook

Registry Editor buttonThere are various Registry settings available to control or modify the update and download behavior of the Offline Address Book in Outlook.

These Registry values usually do not exist yet within your Registry so you’ll need to create them first. For more info see: Editing the Registry.

Use Cached Exchange Mode but without OAB

To always work with the Online Address Book, even when you have Cached Exchange Mode enabled, you can set the following Registry key and value.

Key: HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Outlook\Cached Mode
Value name: DownloadOAB
Value type: REG_DWORD
Value: 0

After setting this value, delete all your currently cached Offline Address Books.

Another way to look at the online Address Book without disabling the OAB is by opening the Address Book (CTRL+SHIFT+B) and use the Address Book dropdown list to set it to All Address Lists-> All Users or any other object type such as All Contacts, All Groups or All Rooms.

Full OAB download threshold

To modify the threshold at which Outlook will download the full OAB rather than the incremental update, you can set the following Registry value

Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\Exchange Provider
Value name: OAB Dif Divisor
Value type: REG_DWORD

As the value, set at which relative size a full OAB download should take place rather than an incremental update. For instance, setting the value to 4 will trigger a full download when the incremental update is larger than one-fourth the size of the full OAB. When the value is set to 0, Outlook will use 16 to prevent a “divide by 0” error. If the key name doesn’t exist, Outlook uses a value of 8.

Prompt before for full download

As the OAB can be quite large in some environments, it could be wise to be prompted when Outlook wants to download the full OAB. This allows you to abort the update process when you are for instance on a slow or expensive connection.

Key: HKEY_CURRENT_USER\Software\Microsoft\Exchange\Exchange Provider
Value name: Allow Full OAB Prompt
Value type: REG_DWORD
Value: 1

Outlook is about to download a full version of the Offline Address Book. Would you like to continue?
You can get prompted if you sometimes want to prevent a full OAB download.

Location of the cached oab-files

File Explorer buttonRather than forcing an OAB update via the Outlook interface, you can also manually delete them when Outlook is closed.

By default, the relevant files are located here;

  • C:\Users\%username%\AppData\Local\Microsoft\Outlook\Offline Address Books\

You can paste the path mentioned above in the Address Bar of Explorer to quickly open the location.
You can paste the path mentioned above in the Address Bar of Explorer to quickly open the location.

As Outlook can connect to multiple Exchange servers in a single mail profile, there is an additional subdirectory for each Exchange account. Each folder is named with a GUID, referencing to the Exchange account, which contain the actual oab-files.

In case you have multiple GUID folders and want to figure out the correct one, see the next section.

In each GUID folder you’ll find the following 6 oab-files in this location which make up the full Offline Address Book:

uanrdex.oabAmbiguous names index
ubrowse.oabMain index
udetails.oabContains all the published details
updndex.oabIndex with changes to domain names and its lists
urdndex.oabRelative distinguished names index
utmplsts.oabTemplate strings for OAB dialog boxes

With Outlook closed, simply rename the folder containing the oab-files to .old to reset the local Offline Address Book.

A benefit of manually deleting the oab-file is that before they are being re-downloaded, you are working with the Online Address Book. When you find things working correctly for you now but not anymore after the oab-files were redownloaded, you know that the issue is with the oab-files on the server and not on the client or the Address Book configuration in general.

Determine which GUID folder your Address Book downloads to

In case you have multiple GUID folder and want to find out which GUID folder your OAB downloads to;

  1. Open the Address Book in Outlook (keyboard shortcut CTRL+SHIFT+B).
  2. In the Address Book dropdown list, select the Offline Global Address List.
  3. Right click on the dropdown field and choose Properties.

    Address Book - Offline Global Address List Properties Context Menu

  4. In the dialog that opens, click in the “The current server is:” field and move your cursor all the way to the right (or press the End button on your keyboard).

    Address Book - Offline Global Address List Properties

Modify default OAB generation schedule in Exchange

Exchange buttonWhen making a change to a mail recipient (like the email address or the display name of the user) or even update the parameters of an Offline Address Book on the Exchange server via Exchange Management Shell (PowerShell), updating the Outlook client after that will not directly get you a fully up-to-date copy.

By default. generating the OAB is done by a System Mailbox on a schedule and changing this schedule depends on your Exchange version.

To find out which mailbox(es) can generate OABs within your organization use;

Get-Mailbox -Arbitration -Filter "PersistedCapabilities -eq 'OrganizationCapabilityOABGen'"

By default, this is only; SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}

Exchange 2013

To change the OAB generation schedule in Exchange 2013, use the Set-MailboxServer cmdlet with the –OABGeneratorWorkCycle and –OABGeneratorWorkcycleCheckPoint parameter.

You’ll need to run this command on each of the mailbox servers which are or could be (especially when using a DAG) hosting an OAB Mailbox.

To set the OAB generation frequency to every 4 hours on a server called Exch1 use:
Set-MailboxServer Exch1 -OABGeneratorWorkCycle 01.00:00:00 -OABGeneratorWorkCycleCheckpoint 04:00:00

More info: Managing OAB in Exchange Server 2013 – Microsoft Tech Community

Exchange 2016 and Exchange 2019

Changing the OAB generation schedule in Exchange 2016 and Exchange 2019 is a 2-step process.

  1. Create a setting override via the New-SettingOverride cmdlet.
  2. Apply the setting override via the Get-ExchangeDiagnosticInfo cmdlet.

To create the setting override to set the OAB generation frequency to every 4 hours for all Exchange servers use:
New-SettingOverride -Name "OAB Generation Override" -Component TimeBasedAssistants -Section OABGeneratorAssistant -Parameters @("WorkCycle=02:00:00") -Reason "Generate OAB every 2 hours"

To apply this override to all servers use:
Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh

More info: Change the offline address book generation schedule in Exchange | Microsoft Docs

Exchange Online

The OAB is generated every 8 hours. You can’t modify this schedule nor manually force an update.

Force OAB update on Exchange

Exchange Update OAB buttonRather than changing the default schedule, you can also force an update of the Offline Address Book when using Exchange On-Premises. This is great for testing or when it is important that changes are published immediately.

You can use the Update-OfflineAddressBook PowerShell command in the Exchange Management Shell to update an OAB:
Update-OfflineAddressBook -Identity "<name of the OAB>"

Update-OfflineAddressBook -Identity "Default Offline Address Book"

Note: Users must still update the OAB manually or wait an Outlook OAB sync interval to see the changes.

More about the Offline Address Book

More Info buttonProperly managing and troubleshooting the Offline Address Book can be quite complex. The above examples on how to modify the generation schedule and force an update only just scratches the surface.

Below are some interesting articles to learn more;