Event Type: Error
Event Source: MSExchangeSA
Event Category: OAL Generator Event
ID: 9334
Date: 5/15/2008
Time: 11:00:33 AM
User: N/A
Computer:
Description:OALGen encountered error ffffffff while initializing the offline address list generation process. No offline address lists have been generated. Please check the event log for more information. - /o=
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Event Type: Warning
Event Source: MSExchangeSA
Event Category: OAL Generator Event
ID: 9395
Date: 5/15/2008
Time: 11:00:33 AM
User: N/A
Computer:
Description: OALGen is running on a cluster continuous replication (CCR) node which does not have registry value 'SYSTEM\CurrentControlSet\Services\MSExchangeSA\Parameters\METROEXMAIL\EnableOabGenOnThisNode' or it is not set to this node name. Offline address book generation will not be performed.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
The latter event was self-explanatory and easily resovleable. However, the first error was puzzling. I eventually found an article on DGoldman's site where he explained the permissions required for OAB generation:
http://blogs.msdn.com/dgoldman/archive/2007/02/01/exchange-2007-oab-generation-fails-with-errors-9348-and-9109.aspx
The only way around this problem, even though the event wasn't exactly the same as the ones quoted by DGoldman, was to re-apply the permissions on the objects in AD that were used by users and Exchange to access and create the OAB.
Here's what I did:
Set a variable called "$container" to contain a path to the Offline Address List object in Active Directory.
[PS] C:\>$container="CN=Offline Address List,CN=Offline Address Lists,CN=Address Lists Container,CN=
[PS] C:\>Add-ADPermission $container -User "Authenticated Users" -AccessRights GenericRead, ListChildren -ExtendedRights Open-Address-Book
WARNING: Appropriate ACE is already present on object "CN=Offline Address List,CN=Offline Address Lists,CN=Address Lists Container,CN=
Identity User Deny Inherited Rights
-------- ---- ---- --------- ------
\Offline Address ... NT AUTHORITY\Auth... False False Open-Address-Book
\Offline Address ... NT AUTHORITY\Auth... False False ReadProperty
\Offline Address ... NT AUTHORITY\Auth... False False ListObject, GenericExecute
\Offline Address ... NT AUTHORITY\Auth... False False ListChildren
[PS] C:\>Add-ADPermission $container -User "Exchange Servers" -AccessRights GenericRead -ExtendedRights Open-Address-Book
Identity User Deny Inherited Rights
-------- ---- ---- --------- ------
\Offline Address ...
\Offline Address ...
\Offline Address ...
[PS] C:\>Add-ADPermission $container -User System -AccessRights GenericAll
Identity User Deny Inherited Rights
-------- ---- ---- --------- ------
\Offline Address ...
All the above commands do is set the required permissions for the process to work. If the OAB is published to a CAS server, it may be wise to stop and start the MSExchangeFDS (File Distribution Service) service and look for the following event in the event log:
Event Type: Information
Event Source: MSExchangeFDSEvent
Category: FileReplication
Event ID: 1008
Date: 5/15/2008
Time: 2:04:40 PM
User: N/A
Computer:
Description: Process MSExchangeFDS.exe (PID=25532). Offline Address Book data synchronization task has completed successfully. OAB name: "Exchange 2007 OAB", Guid: 8f7d2fed-187a-4246-8f1a-09e55171ed51
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
This event will confirm that replication of the OAB files is occurring.
