When 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 synching schedules, it can take up to 48 hours before you could actually see a change in Outlook after a modification has been made on the Exchange server 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
- Updating Outlook manually
- Modify the OAB update frequency in Outlook
- Modify the OAB download behavior in Outlook
- Location of the cached oab-files
- Modify default maintenance schedule in Exchange
- Force OAB update and redistribution on Exchange
The automatic sync and update schedules
After a change had been made to any of the Address Book attributes which is also included in the Offline Address Book (OAB), the following occurs:
- Exchange regenerates the OAB
Default generation schedule: 24 hours
- Exchange distributes the OAB
Default distribution schedule: 480 minutes
- Outlook downloads the OAB
Default update schedule: 24 hours
This means that in the worst possible scenario, an update to the Address Book won’t become available to the user until 48 hours after the change.
This situation however is extremely rare since the default maintenance time on Exchange is at 5:00 AM and updates and downloads are usually performed during working hours.
Updating Outlook manually
Even 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 ;-).
The command for the manual update procedure can be found here:
- Outlook 2010 and Outlook 2013
tab Send/Receive-> Send/Receive Groups-> Download Address Book…
- Outlook 2007 and previous
Tools-> Send/Receive-> 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 to wait 24 hours.
Modify the OAB update frequency in Outlook
To alter the default OAB update interval of 24 hours to a higher frequency, you’ll need to define a new Send/Receive group.
- Open the Send/Receive Groups dialog
- Keyboard shortcut: CTRL+ALT+S
- Outlook 2010 and Outlook 2013
tab Send/Receive-> Send/Receive Groups-> Define Send/Receive Groups
- Outlook 2007 and previous
Tools-> Send/Receive-> Send/Receive Settings-> Define Send/Receive Groups
- Click New.
- Provide a name for the group. For instance: Download OAB
- Select your Exchange account and enable the option: Include the selected account in this group
- Disable all the options in the “Account Options” section except for: Download offline address book
- Verify that the option “Include the selected account in this group” for all the other accounts you might have are not selected.
- Click OK to return to the Send/Receive Groups dialog.
- Select your newly created Send/Receive group.
- Disable all the options except for the first reference to: Schedule an automatic send/receive every x minutes.
- Set your preferred interval but don’t set it too low. If the update frequency of the OAB files on the Exchange server hasn’t been increased, you’ll only end up slowing down your Outlook Send/Receive performance.
Modify the OAB download behavior in Outlook
There are various Registry settings available to control or modify the update and download behavior of the Offline Address Book in Outlook.
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.
Another way to look at the on-line 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
OAB Dif Divisor
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.
Allow Full OAB Prompt
You can get prompted if you sometimes want to prevent a full OAB download.
Location of the cached oab-files
Rather than forcing an OAB update via the Outlook interface, you can also manually delete them when Outlook is closed.
- Windows Vista, Windows 7 and Windows 8
- Windows XP
C:\Documents and Settings\%username%\Local Application Data\Microsoft\Outlook
You can paste the path mentioned above in the Address Bar of Explorer to quickly open the location.
As Outlook 2010 an Outlook 2013 can connect to multiple Exchange servers in a single mail profile, there is an additional “Offline Address Books” subdirectory which contains folders with GUID references which contain the actual oab-files. Finding out which GUID represents which mail account isn’t very straightforward but looking at the “Date modified” value of the folder should give you a good indication if you don’t want to simply delete all folders or rename them to .old.
You’ll find the following 6 oab-files in this location which make up the full Offline Address Book:
|Ambiguous names index|
|Contains all the published details|
|Index with changes to domain names and its lists|
|Relative distinguished names index|
|Template strings for OAB dialog boxes|
If you are still using Outlook 2002/XP or previous, the file names won’t have a “u” in front of their name.
You’ll have to rename them all to .old or, in the case of Outlook 2010 or Outlook 2013, rename the folder containing the oab-files to .old to reset the local Offline Address Book. Renaming just a single or some of the files will result in an OAB corruption.
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-file 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.
Modify default maintenance schedule in Exchange
When you update an Offline Address Book on the Exchange server via the Exchange Management Console or the Exchange Management Shell, one would suspect that updating the Outlook client after that would directly get you this fully up-to-date copy. Wrong!
After the OAB gets updated on Exchange, it still needs to distributed to the web services first, even in a single server environment. The process of updating and distributing the OAB is achieved by the following two schedules.
OAB Update schedule
To change the OAB Update Schedule via the Exchange Management Console:
Organization Configuration-> Mailbox-> tab Offline Address Book-> double click on the Offline Address Book for which you want to change the schedule-> tab General
Via the Exchange Management Shell, you can use the Set-OfflineAddressBook PowerShell command to change the schedule:
Set-OfflineAddressBook "<name of OAB>" -schedule <schedule format>
Set-OfflineAddressBook "Default Offline Address Book" –schedule "So.05:00-So.05:15, Mo.05:00-Mo.05:15, Di.05:00-Di.05:15, Mi.05:00-Mi.05:15, Do.05:00-Do.05:15, Fr.05:00-Fr.05:15, Sa.05:00-Sa.05:15"
OAB Distribution schedule
To set the OAB distribution polling schedule via the Exchange Management Console:
Server Organization-> Client Access-> select the server for which you want to change the schedule-> bottom section: tab Offline Address Book Distribution-> double click on the name of the OAB-> tab General
Via the Exchange Management Shell, you can use the Set-OABVirtualDirectory PowerShell command to change the polling schedule:
Set-OABVirtualDirectory -Identity "<Server\OfflineAddressBookVirtualDirectoryName>" -PollInterval <value in minutes>
Set-OABVirtualDirectory -Identity "Exchange01\OAB (Default Web Site)" -PollInterval 480
Force OAB update and redistribution on Exchange
Rather than changing the default schedule, you can also force an update and redistribution of the Offline Address Book. This is great for testing or when it is important that changes are published immediately (note that users must still update the OAB manually or wait a OAB sync interval to see the changes).
Update the Offline Address Book
To update the Offline Address via the Exchange Management Console:
Organization Configuration-> Mailbox-> tab Offline Address Book-> right click on the Offline Address Book for which you want to update-> Update
Via the Exchange Management Shell, you can use the Update-OfflineAddressBook PowerShell command to update an OAB:
Update-OfflineAddressBook -Identity "<name of the OAB>"
Update-OfflineAddressBook -Identity "Default Offline Address Book"
Distribute the OAB files
To force the distribution of the OAB files, you can’t use the Exchange Management Console but can only use the Update-FileDistributionService PowerShell command for the Exchange Management Shell:
Update-FileDistributionService "<CAS Server Name to update>" -Type "OAB"
Update-FileDistributionService "Exchange01" -Type "OAB"
Distribute the OAB files to all the servers at once
Rather than to distribute the OAB files per server, you can also update it to all CAS servers at once by pipelining it with the Get-ClientAccessServer cmdlet via the following one-liner:
Get-ClientAccessServer | Update-FileDistributionService -Type "OAB"