Change the offline address book generation schedule in Exchange

An offline address book (OAB) is a copy of an address book that's been downloaded so that an Outlook user can access the information it contains while disconnected from the server. By default, a new OAB is generated every 8 hours in Exchange Server 2016 and Exchange Server 2019, but you can change the interval by using the Exchange Management Shell.

For additional management tasks related to OABs, see Procedures for offline address books in Exchange Server.

What do you need to know before you begin?

  • Estimated time to complete this procedure: 5 minutes.

  • You can only use PowerShell to perform this procedure. To learn how to open the Exchange Management Shell in your on-premises Exchange organization, see Open the Exchange Management Shell.

  • You need to be assigned permissions before you can perform this procedure or procedures. To see what permissions you need, see the "Offline address books" entry in the Email address and address book permissions topic.

Tip

Having problems? Ask for help in the Exchange forums. Visit the forums at: Exchange Server, Exchange Online, or Exchange Online Protection.

Change the offline address book generation schedule

Changing the OAB generation schedule is a two-step process:

  1. Change the OAB generation schedule.

  2. Apply the new OAB generation schedule.

Step 1: Use the Exchange Management Shell to change the OAB generation schedule

To change the OAB generation schedule, use this syntax:

New-SettingOverride -Name "<UniqueOverrideName>" -Component TimeBasedAssistants -Section OABGeneratorAssistant -Parameters @("WorkCycle=<Timespan>") -Reason "<DescriptiveReason>" [-Server <ServerName>]

Notes:

  • To specify a <TimeSpan> value, use the syntax d.hh:mm:ss, where d = days, hh = hours, mm = minutes, and ss = seconds.

  • To configure the OAB generation schedule on all Exchange 2016 and Exchange 2019 Mailbox servers in the Active Directory forest, don't use the Server parameter.

  • To configure the OAB generation schedule on a specific Exchange 2016 or Exchange 2019 Mailbox server, use the Server parameter and the name (not the fully qualified domain name or FQDN) of the server. This method is useful when you need to specify different OAB generation schedules on different Exchange servers.

  • In Exchange 2016 Cumulative Update 3 (CU3) or earlier, the Component parameter value is MailboxAssistants.

This example specifies that the OAB is generated every two hours on all Exchange 2016 and Exchange 2019 servers in the organization that are responsible for generating OABs.

  • Setting override name: "OAB Generation Override" (must be unique)

  • WorkCycle: 02:00:00 (2 hours)

  • Override reason: Generate OAB every 2 hours

New-SettingOverride -Name "OAB Generation Override" -Component TimeBasedAssistants -Section OABGeneratorAssistant -Parameters @("WorkCycle=02:00:00") -Reason "Generate OAB every 2 hours"

This example specifies the same OAB generation schedule, but only on the server named Mailbox01.

New-SettingOverride -Name "Mailbox01 OAB Generation Override" -Component TimeBasedAssistants -Section OABGeneratorAssistant -Parameters @("WorkCycle=02:00:00") -Reason "Generate OAB every 2 hours" -Server Mailbox01

Step 2: Use the Exchange Management Shell to apply the new OAB generation schedule

To apply the new OAB generation schedule, use this syntax:

Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh [-Server <ServerName>]

Notes:

  • If you didn't use the Server parameter in Step 1, don't use it here. If you used the Server parameter in Step 1, use the same server name here.

  • If you delete the custom OAB generation schedule by using the Remove-SettingOverride cmdlet, you still need to run this command to change the generation schedule back to the default value of 8 hours.

This example applies the new OAB generation schedule on all Exchange 2016 and Exchange 2019 Mailbox servers in the organization.

Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh

This example applies the new OAB generation schedule on the server named Mailbox01.

Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh -Server Mailbox01

How do you know this worked?

To verify that you've configured the OAB generation schedule on one or more Exchange servers, replace <ServerName> with the name of the server (not the FQDN), and run the following command to verify the value of the WorkCycle property:

[xml]$diag=Get-ExchangeDiagnosticInfo -Server <ServerName> -Process MSExchangeMailboxAssistants -Component VariantConfiguration -Argument "Config,Component=TimeBasedAssistants"; $diag.Diagnostics.Components.VariantConfiguration.Configuration.TimeBasedAssistants.OABGeneratorAssistant

Note: In Exchange 2016 CU3 or earlier, you need to run this command instead: [xml]$diag=Get-ExchangeDiagnosticInfo -Server <ServerName> -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Config; $diag.Diagnostics.Components.VariantConfiguration.Configuration.MailboxAssistants.OABGeneratorAssistant.

See also

Procedures for offline address books in Exchange Server