Offline Address Book Integrity (OABInteg) Utility Explained

Offline Address Book Integrity (OABInteg) Utility Explained

In this article I’ll introduce you to the Offline Address Book Integrity (OABInteg) utility, which can be of great help when troubleshooting Offline Address Book (OAB) generation issues as well as OAB download issues.
Note: This article is published with permission from www.msexchange.orglink out ico
Introduction
OABInteg is a nifty little command line display utility created by Dave Goldman who’s a Microsoft Exchange Escalation Engineer. There’s not much information about OABInteg utility on the Internet, so I thought it would be a good idea to write an article explaining and showing how to use it.
Basically OABInteg is a utility which can help you in troubleshooting OAB generations issues, as well as help out when dealing with Outlook clients that have problems downloading an OAB from a Public Folder store.
Note: As the time of this writing OABInteg isn’t publicly available, so you need to get in contact Microsoft Product Support Services in order to get a copy of the tool. But rumour has it there’s an MS KB article covering OABInteg on its way, and that the tool will be made publicly available when the article is released.
I’ve in my work as an Exchange consultant seen extremely many OAB related issues, and if you do a search for “OAB download problem”  or “OAB generation problem” in on Google Groups or just here on MSExchange.org’s own Message Board the number of hits speaks for themselves (for example see this post which at the time of this writing got 158 replies so far!).
Features
The OABInteg utility is capable of gathering information on the following objects (done using non-intrusive tests):

  • Address List, Offline Address Lists and Address List related properties
  • System Folders
  • OAB Messages
  • OAB Attachments
  • Address List Hierarchy
  • Address Book Recipients as well as data

OABInteg can simulate an Outlook client connecting to the System Folders in a Public Information Store in order to download the respective OAB files. OABInteg can also simulate the method which the OABGEN process uses when one or more OAB is rebuild.
oabinteg2 small
OABInteg parameters
As you can see in the above figure, there’re several parameters available in OABInteg, I’ve listed each of them below.
Usage:
OABInteg.exe [/s:servername] [/t:testname] [/l] (enable file logging) [/v: 1 or 2] (enable verbose logging) | Optional Commands [/d:SearchDN] [/p:# – Page Size] [U/:UserName] [/P:password]
/l  Logging output will go to c:’OABInteg.txt
/v:  Logging output will go to the screen. – Default logging is general – nothing selected | /v:1 for minimum and /v:2 for maximum logging.
/p:  Active Directory search page size. Default size is 64 and maximum is 512.
/dn:  -proxytest only!! <Example: OU=Managers,DC=OrgName,DC=local>
Note:  If you do not specify a search /dn: we will use base query of DC=OrgName,DC=local
/U:   Username. If you are going to connect use different credentials or connect to a different domain.
/P:   Password. If you are going to connect use different credentials or connect to a different domain.
OABInteg Tests
There’re four different types of test categories in OABInteg – Active Directory, MAPI, Registry and MAPI File tests. Each of these contains several sub-tests, all of which I’ve listed below.
Active Directory Tests

  • Storealtest – Validate if the information stores point to an Adress list
  • Altest – Validate if the information stores point to an address list
  • Oaltest – Finds all offline address lists in the organization.
  • Abrtest – Finds the addressBookroots properties.
  • Proxytest – Scan for users that will be skipped during the oabgen process. Checks for invalid legacy Dn’s also
  • Rdntest – Scan for all legacyExchangeDN’s that have a final RDN greater than 64 characters.
  • Templatetest – Scans the active directory for any orphaned display templates.
  • Alltests – Runs all the LDAP tests | [-storealtest][-altest][-oaltest][-abrtest][-proxytest][-templatetest]

MAPI Tests

  • Oabfldcheck – Logon to the public information store and check the OAB system folders, messages and attachments.
  • Getabinfo_v2 – Open the default address book for a selected profile and dump all entries using OAB V2 props.
  • Getabinfo_v3 – Open the default address book for a selected profile and dump all entries using OAB V3a props.
  • Hierarchyinfo – Logon to the public information store and get the OAB Hierarchy list information.

Registry Tests

  • Getoabseqnum – Check all user profiles and find the last downloaded OAB sequence number.

MAPI File Tests

  • Scanmapisvc – Scan the mapisvc.inf file for invalid entries.

Usage Examples
In order to show you how OABInteg works I’ve included 3 usage examples in this article. Each of them is explained below in detail below.
Example 1
To validate whether the Mailbox Stores existing in the organization points to an Address List, you will use storealtests as shown below:

​Oabinteg.exe /s:ehvms01 /l /t:storealtest

/S is used to specify the server and the /l parameter logs the result to a .txt file named OABinteg.txt in the root of the C: drive.
Executing this command in my test environment gives the output shown in the next figure:
oabinteg4 small
Example 2
In order to list all Offline Address Books (OABs) in the organization we’ll use the oaltest command shown below:

​Oabinteg.exe /s:ehvms01 /l /t:oaltest

Executing this command in my test environment gives the output shown in the following figure.
oabinteg6 small
Example 3
Let’s also try to scan the AD for user objects that will be skipped during the OABGEN process, we do this by using the proxytest command as shown below:

​Oabinteg.exe /s:ehvms01 /l /t:proxytest

 
Executing this command in my test environment gives the following result (notice an Event ID 9325 and 9324 will be logged to the Application log if either the proxyAddress doesn’t match or if the legacyExchangeDn doesn’t start with /=o or /=O respectively). For more details see the next figure.
oabinteg8 small
Note: In this article we have only taken a look at the Active Directory related tests, but the MAPI tests available are at least as useful, so remember to check those out too, once you have got a copy of the OABInteg utility.
Summary
In this article we had a superficial look at OABInteg, we went through the parameters as well as the different types of tests available in OABInteg. As you probably already have experienced, troubleshooting OAB related issues, can be a complex and time consuming task, especially if you don’t know what’s going on behind the GUI. OABInteg will in most situations make the task a little less painful.
I will in a future article delve more into the tasks necessary to troubleshoot OAB related issues.
Related Reading
OAB Integrity Tool (OABINTEG) User Guide which included with the utility (a must read!)
TechNet Support WebCast: How to troubleshoot Offline Address Book issues in Microsoft Exchange Server:
http://support.microsoft.com/kb/905482link out ico
You may also find Dave Goldman’s WebLog interesting: http://blogs.msdn.com/dgoldmanlink out ico

Author Bio

Henrik Walther is a Microsoft Exchange MVP and works as a Senior Technical Consultant with Interprise, a Microsoft Gold Partner based in Denmark. You can visit his website at: www.exchange-faq.dk (danish).

Note: This article is published with permission from www.msexchange.orglink out ico