How to work with Exchange 2007 / Exchange 2010 OAB Event Logging

In Exchange 2007 we introduced the Microsoft Exchange Scripting Console as a mechanism for performing Exchange tasks via scripting. The Microsoft Exchange Scripting Console extends the ability to run commands that you want to perform without having to use a graphical interface.

For Exchange 2007 and 2010 Offline Address Book event logging, there are two commands that you can run from the Microsoft Exchange Scripting Console to set and get the event logging levels. 

  • Set-EventLogLevel - Will set the current event logging levels for all of the components, or a specified component.
  • Get-EventLogLevel - Will get the event logging level.

The levels of logging that are available: [ Lowest | Low | Medium | High | Expert ]

How to get the current diagnostic logging level for OAB Generation in Exchange 2007
1. Open the Exchange Scripting Console.
2. Type Get-EventLogLevel “MSExchangeSA\OAL Generator”

NOTE: By default the Event Level is set to the Lowest level.

Here is the output from the Microsoft Exchange Scripting Console
Identity : MSExchangeSA\OAL Generator
IsValid : True
ObjectState : Unchanged
Name : OAL Generator
Number : 13
EventLevel : Lowest

How to turn up the diagnostic logging level for OAB Generation in Exchange 2007
1. Open the Exchange Scripting Console.
2. Type Set-EventLogLevel -Identity “MSExchangeSA\OAL Generator” –Level Expert

NOTE: After you hit enter you will not see any output, and this indicates that the logging level has been set.

OPTIONAL COMMNAD: You can also run Set-EventLogLevel “MSExchangeSA\OAL Generator” –Level Expert -vb to output the information in verbose mode.

(verbose output)
VERBOSE: Beginning the task's processing.
VERBOSE: Processing one object in the task.
VERBOSE: Searching configurable objects "MSExchangeSA\OAL Generator" of type "EventCategoryObject" under the root "$null" on Source "MSExchangeSA\OAL Generator".
VERBOSE: Validating the configurable object "MSExchangeSA\OAL Generator".
VERBOSE: Validating the configurable object "MSExchangeSA\OAL Generator".
VERBOSE: Saving the changes of the configurable object, "MSExchangeSA\OAL Generator" of type "EventCategoryObject" on Source "MSExchangeSA\OAL Generator".
VERBOSE: Ending the task's processing.

3. Check the diagnostic logging level to make sure it has been changed. Type Get-EventLogLevel “MSExchangeSA\OAL Generator”

You will now see that the logging level has been set to Expert.

MSH>Get-EventLogLevel "MSExchangeSA\OAL Generator"
Identity : MSExchangeSA\OAL Generator
IsValid : True
ObjectState : Unchanged
Name : OAL Generator
Number : 13
EventLevel : Expert

How to rebuild an Offline Address List through the Microsoft Exchange Scripting Console
1. Type Update-OfflineAddressBook –Identity “Default Offline Address List”

NOTE: This will generate the Default Offline Address List. Again by default you will not see any output if the Offline Address List has been generates successfully.

OPTIONAL COMMNAD: You can also run Update-OfflineAddressBook –Identity “Default Offline Address List” -vb to output the information in verbose mode.

(verbose output)
VERBOSE: Beginning the task's processing.
VERBOSE: Processing one object in the task.
VERBOSE: Searching configurable objects "Default Offline Address List" of type "OfflineAddressBook" under the
root "$null" on Source "DC1.fourthcoffee.com".
VERBOSE: Validating the configurable object "\Default Offline Address List".
VERBOSE: Searching configurable objects "E12-MBX" of type "Server" under the root "$null" on Source
"DC1.fourthcoffee.com".
VERBOSE: Ending the task's processing.

How to display the Windows NT Application Event View information
At this point you have two options:
1. Open Windows NT Application Event Viewer and view the application log
2. Use the Microsoft Exchange Scripting Console to filter and dump out the events from the application log:

For this example I will use the Microsoft Exchange Scripting Console to do this task:

3. Type Get-EventLog Application | Where {$_.Category -eq "OAL Generator"} > c:\oabevents.txt

NOTE: This will pipe out all of the MSExchangeSA\OAL Generator events to the c:\oabevents.txt file in a truncated format. If you would like to see the entire text you can append | ft -Wrap to the end of the command to extend the text in a format table fashion.

Example: Get-EventLog Application | Where {$_.Category -eq "OAL Generator"} | ft -Wrap > c:\oabevents.txt 

For this display I have truncated the event messages for display purposes.

Index Time Type Source EventID Message
110 Aug 26 17:49 Info MSExchangeSA 9107 Offline address list generation finished....
109 Aug 26 17:49 Info MSExchangeSA 9134 OALGen successfully created or opened the sub folde...
108 Aug 26 17:49 Info MSExchangeSA 9133 OALGen is attempting to create or open the sub fold...
107 Aug 26 17:49 Info MSExchangeSA 9377 OALGen is preparing to open the OAB folder '/o=Four...
106 Aug 26 17:49 Info MSExchangeSA 9355 OALGen successfully generated and posted the versio...
105 Aug 26 17:49 Info MSExchangeSA 9138 OALGen successfully found the message containing th...
104 Aug 26 17:49 Info MSExchangeSA 9136 OALGen successfully opened the message containing t...
103 Aug 26 17:49 Info MSExchangeSA 9135 OALGen successfully opened the folder 'OAB Version ...
102 Aug 26 17:49 Info MSExchangeSA 9352 OALGen is searching the folder 'OAB Version 4' for ...
101 Aug 26 17:49 Info MSExchangeSA 9134 OALGen successfully created or opened the sub folde...
100 Aug 26 17:49 Info MSExchangeSA 9133 OALGen is attempting to create or open the sub fold...
99 Aug 26 17:49 Info MSExchangeSA 9377 OALGen is preparing to open the OAB folder '/o=Four...
98 Aug 26 17:49 Info MSExchangeSA 9388 OALGen is downloading all differential files curren...
97 Aug 26 17:49 Info MSExchangeSA 9114 OALGen successfully compared the previous and new v...
96 Aug 26 17:49 Info MSExchangeSA 9113 OALGen is comparing the previous and new versions o...
95 Aug 26 17:49 Info MSExchangeSA 9112 OALGen has downloaded the previous version of offli...
93 Aug 26 17:49 Info MSExchangeSA 9138 OALGen successfully found the message containing th...
92 Aug 26 17:49 Info MSExchangeSA 9136 OALGen successfully opened the message containing t...
91 Aug 26 17:49 Info MSExchangeSA 9135 OALGen successfully opened the folder 'OAB Version ...
90 Aug 26 17:49 Info MSExchangeSA 9352 OALGen is searching the folder 'OAB Version 4' for ...
89 Aug 26 17:49 Info MSExchangeSA 9134 OALGen successfully created or opened the sub folde...
88 Aug 26 17:49 Info MSExchangeSA 9133 OALGen is attempting to create or open the sub fold...
87 Aug 26 17:49 Info MSExchangeSA 9377 OALGen is preparing to open the OAB folder '/o=Four...
83 Aug 26 17:49 Info MSExchangeSA 9356 OALGen is downloading the previous version of offli...
82 Aug 26 17:49 Info MSExchangeSA 9134 OALGen successfully created or opened the sub folde...
81 Aug 26 17:49 Info MSExchangeSA 9133 OALGen is attempting to create or open the sub fold...
80 Aug 26 17:49 Info MSExchangeSA 9377 OALGen is preparing to open the OAB folder '/o=Four...
79 Aug 26 17:49 Warn MSExchangeSA 9390 OALGen failed to find the OAB version 4 manifest fi...
78 Aug 26 17:49 Info MSExchangeSA 9354 OALGen is building the version 4 offline address li...
77 Aug 26 17:49 Info MSExchangeSA 9118 OALGen successfully read all 1 objects in address l...
76 Aug 26 17:49 Info MSExchangeSA 9123 OALGen successfully generated templates files for a...
72 Aug 26 17:48 Info MSExchangeSA 9108 Offline address list is being generated for address...
71 Aug 26 17:48 Info MSExchangeSA 9122 OALGen successfully removed any offline address lis...
70 Aug 26 17:48 Info MSExchangeSA 9134 OALGen successfully created or opened the sub folde...
69 Aug 26 17:48 Info MSExchangeSA 9133 OALGen is attempting to create or open the sub fold...
68 Aug 26 17:48 Info MSExchangeSA 9134 OALGen successfully created or opened the sub folde...
67 Aug 26 17:48 Info MSExchangeSA 9133 OALGen is attempting to create or open the sub fold...
65 Aug 26 17:48 Info MSExchangeSA 9134 OALGen successfully created or opened the sub folde...
64 Aug 26 17:48 Info MSExchangeSA 9133 OALGen is attempting to create or open the sub fold...
63 Aug 26 17:48 Info MSExchangeSA 9377 OALGen is preparing to open the OAB folder '/o=Four...
62 Aug 26 17:48 Info MSExchangeSA 9121 OALGen successfully found the address list '\Global...
61 Aug 26 17:48 Info MSExchangeSA 9106 Offline address list generation started....
60 Aug 26 17:48 Info MSExchangeSA 9343 OALGen will use 'C:\WINDOWS\TEMP\' as the temporary...
59 Aug 26 17:48 Info MSExchangeSA 9117 OALGen successfully opened a connection to Active D...

Dave