Wednesday, 18 February 2015

Offline address books and address lists in Exchange 2013

Offline address books are used by Outlook in cached exchange mode to lookup recipients from a local address book when the Exchange server is currently unavailable - this in turn can take load of the server.

Offline address book (OAB) generation process takes place on the OAB generation server which contains the "Organizational Inbox" - in order to find this you can run the following:
Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like "*oab*"} | ft name,servername
You can view all of the current Global Address Books using the "Get-OfflineAddressBook" cmdlet:
In order to then move this to another Mailbox server you can use the Move-OfflineAddressBook cmdlet:
Move-OfflineAddressBook -Identity "My Offline Address Book" -Server "mbox-server-2"
You can create a new OAB as follows:
New-OfflineAddressBook -Name OAB-FAB -AddressLists "Test Global Address List"
You can also manually invoke an update of the Offline Address Books:
Update-OfflineAddressBook -Identity "Default Offline Address Book"
And finally you can add an additional Organizational Inbox on a mailbox server for added redundancy:
New-Mailbox -Arbitration -Name "Test OAB" -Database TestDB -UserPrincipalName –DisplayName “Test OAB Mailbox”
Set-Mailbox -Arbitration offlineaddressbook -OABGen $true // enables OAB generation on the inbox
They are compressed and then stored in a share, you also have the ability to designate who has access to them and how they are distributed.

Also remembering to update the address book from Outlook is important as well!

Address List

Since there was a brief reference to address lists during the creation steps of the OAB above I thought I would cover a brief bit about address lists.

Address lists are a collection of recipients and other objects such as users, public folders and so on. The above example is taken from TechNet using the Exchange Management Shell (alhough it can also be performed from ECP):
New-AddressList -Name MyAddressList -RecipientFilter {((RecipientType -eq 'UserMailbox') -and ((StateOrProvince -eq 'Washington') -or (StateOrProvince -eq 'Oregon')))}
In order to update an address list we can make use of the Update-AddressList cmdlet:
Update-GlobalAddressList -Identity "Default Global Address List"
** It might also be worth noting that if a standard user would like to create an address list they must be part of the "Organization Management" group. **


Post a Comment