Tag Archive : Exchange Server 2019

[Solved] How to Resolve Offline Address Book Download Error

After upgrading from Exchange Server 2013 or 2016 to 2019, the address book download seems to give an error on offline address book download on Outlook desktop client. This issue happens because the Exchange Server 2019 Offline address book configuration on the Exchange server has incorrect server details and addresses book distribution. This can be resolved by enabling global web distribution and setting the virtual directory to null.

On the Outlook client when you expand the “send and receive group” drop-down and select download address book. You would see the popup something similar as below.

And you would see the error as below when you try to download. The error is

(0x8004010F): 'The operation failed. An object cannot be found.
Offline Address Book Download Error

This error can be resolved, and the offline address book can be downloaded by enabling global web distribution on the Exchange server using the Exchange management shell.

Run the below command to set the default offline address book with the command.

Get-Mailbox | Set-Mailbox -OfflineAddressBook "\Default Offline Address List"

Check the list of address books using the command below.

Get-offlineaddressbook

To resolve the above error run the command below to make the virtual directory to null. In this command, we are enabling global web distribution and shadow mailbox distribution as well.

Set-OfflineAddressBook -Identity "Default Offline Address Book" -VirtualDirectories $null -ShadowMailboxDistributionEnabled $true -GlobalWebDistributionEnabled $true

After running the above command restart the server. This will let the configuration changes to take effect on the Offline Address Book and the download error will be resolved. Test it on your outlook desktop client.

Exchange Server Cumulative Update upgrade error

Exchange Server Cumulative Update upgrade error on stopping Windows Management Instrumentation service. The following error shows on stopping this service.

<!-- wp:paragraph -->
<p>Error:</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The
following error was generated when "$error.Clear(); </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp; $RoleBinPath\ServiceControl.ps1
-Operation:DisableServices -Roles:($RoleRoles.Replace('Role','').Split(','))
-SetupScriptsDirectory:$RoleBinPath;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp; $RoleBinPath\ServiceControl.ps1
-Operation:Stop -Roles:($RoleRoles.Replace('Role','').Split(',')) -IsDatacenter:([bool]$RoleIsDatacenter)</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " was run:
"Microsoft.Exchange.Configuration.Tasks.ServiceDidNotReachStatusException:
Service 'WinMgmt' failed to reach status 'Stopped' on this server.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp; at
Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception,
ErrorCategory errorCategory, Object target, String helpUrl)</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp; at
Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception,
ErrorCategory category, Object target)</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp; at
Microsoft.Exchange.Management.Tasks.ManageSetupService.WaitForServiceStatus(ServiceController
serviceController, ServiceControllerStatus status, Unlimited`1 maximumWaitTime,
Boolean ignoreFailures, Boolean sendWatsonReportForHungService)</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp; at
Microsoft.Exchange.Management.Tasks.ManageSetupService.StopService(ServiceController
serviceController, Boolean ignoreServiceStopTimeout, Boolean
failIfServiceNotInstalled, Unlimited`1 maximumWaitTime)</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp; at
Microsoft.Exchange.Management.Tasks.ManageSetupService.StopService(String
serviceName, Boolean ignoreServiceStopTimeout, Boolean
failIfServiceNotInstalled, Unlimited`1 maximumWaitTime)</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp; at
Microsoft.Exchange.Management.Tasks.StopSetupService.InternalProcessRecord()</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp; at
Microsoft.Exchange.Configuration.Tasks.Task.&lt;ProcessRecord&gt;b__91_1()</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;&nbsp; at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String
funcName, Action func, Boolean terminatePipelineIfFailed)".</p>
<!-- /wp:paragraph -->

Resolution

Go to Task Manager and in the Services tab find Windows Management Instrumentation Service and find the Process ID (PID) of this service process. Note down the process ID and come to details on the task Manager and kill the process. Leave the Windows Management Instrumentation Service start state to be disabled and run the Exchange Server Cumulative Update setup again either through Graphical user interface or command line and this time the error won’t come up.

I want to hear from you, if you have any questions or feedback, leave your comments below and I reply you.

How to Migrate Exchange Server 2013 to 2019 Part-2

Read More